日期:2014-05-19  浏览次数:20874 次

C#中是否有这样的语法??哈哈,是不是异想天开啊?
C#的类可以有内隐类(即可以在类中定义类),但是在方法中能否再定义一个方法呢?      
    比如      
       
  public       void       test()
  {      
            public       void       test1(int   a,bool   cancel)
            {      
                   
            }

            if(aa> 0)
            {
                test1(aa,true);
            }
            else
                  test1(aa,false);

    }      
       
    能否能象上面这样呢在test方法中再声明个方法test1呢?javascript是可以这样作的。

我的目的:因为我在写一个方法的时候在多处的代码都是重复的,所以需要提取出一个方法test1来供test的多处调用,但是test1要共享一些test中的内部变量。

大家来讨论下,是否有其他变通的方法。

------解决方案--------------------
如果是web的话,输出是一段脚本能达到目的不
------解决方案--------------------
这是啥问题呀,,
------解决方案--------------------
可以呀,不过if{...}要放到一个方法里
------解决方案--------------------
把Test1的public去掉看看
------解决方案--------------------
方法之间调用:
把方法test1(int a,bool cancel) 定义到test()外面,然后在方法test()中调用test1好了
------解决方案--------------------
楼主可能是受到了javascript的影响了吧?
------解决方案--------------------
C#2.0 多了一个匿名方法(Anonymous Methods),但绝对不是楼主这个东东

大多数编程语言只支持方法的调用,不支持方法的嵌套
------解决方案--------------------
C#中方法又不是对象,不象javascript
------解决方案--------------------
在调用的时候判断一下.....
------解决方案--------------------
public void test1(int a,bool cancel)
{

}


public void test()
{

if(aa> 0)
{
test1(aa,true);
}
else
test1(aa,false);

}

这样子不是最简单吗?
------解决方案--------------------
.net是面向对象的,不是面向方法的,需求首先考虑在对象上的实现而不是方法。“8、9个变量”?就算1w个变量,你也可以写进一个对象里边去,没有什么不方便的。除非你不打算设计对象。
------解决方案--------------------
Mark!
------解决方案--------------------
up
------解决方案--------------------
将方法抽象为对象~~ 只有这样做才符合OO的思想
------解决方案--------------------
完全可以实现!
看这个问题是不是想到了方法的 "重载 ",下面我不用多说了吧?哈哈~~
------解决方案--------------------
haolaiwu(宁愿相信世界上有鬼,也不相信女人那张嘴) ( ) 信誉:100 Blog 加为好友 2007-5-5 20:01:31 得分: 0

因为涉及到的局部变量多而杂,没有必要去封装到对象去。