读书人

C#中是否有这样的语法?哈哈是不是异

发布时间: 2012-02-04 15:43:08 作者: rapoo

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

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



--

这是什么理由啊。




[解决办法]
"多处的代码都是重复的 "匿名方法,找到适合的场合用,在java中已经修正并不推荐匿名方法。
"多处的代码都是重复的 ", "因为涉及到的局部变量多而杂 ",阅读下 "重构 ",好的意见希望能够虚心接受。
我的建议就是希望你能够重构你的代码,再设计的重复三遍,目标(重用性,灵活性,扩展性).
[解决办法]
暂时判断为楼主的面向对象设计思想有点问题
[解决办法]
haolaiwu(宁愿相信世界上有鬼,也不相信女人那张嘴) ( ) 信誉:100 Blog 加为好友 2007-5-5 20:01:31 得分: 0

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

这说明你的设计有问题。javascript一个方法就是一个对象,所以面向对象实现起来也不是很自然。

[解决办法]
匿名方法的确能访问到局部变量……
但是这种需求直接用个类封装便可,毫无意义,一个方法里面局部变量定义过多只能说明结构或者类设计不够合理。
[解决办法]
你现在这样写法本身就是对的, 就是注意 aa 这个变量要先定义,和给值才能用。
[解决办法]
JF
[解决办法]
mark

[解决办法]
namespace都可以嵌套namespace,class嵌套class就不用说了!
[解决办法]
JavaScript是基于对象,面向过程的语言,而且是弱类型的...

这个和C#是完全两个层次的差距,一愣一概要求...


[解决办法]
mark
[解决办法]
学习

读书人网 >C#

热点推荐