Tag: 方法

匿名方法(C#2.0)和lambdaexpression式(C#3.0)之间有什么区别?

C#2.0的匿名方法和C#3.0的lambdaexpression式之间有什么区别?

dynamicreplaceC#方法的内容?

我想要做的是改变一个C#方法在被调用的时候的执行方式,这样我可以写下如下的东西: [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n – 1; m += 1) if (m % n == 0) return false; return true; } 在运行时,我需要能够分析具有分布式属性(我已经可以做到)的方法,然后在函数正文执行之前和函数返回之前插入代码。 更重要的是,我需要能够在不调整Solve的地方修改代码,或者在函数启动的时候(编译时;在运行时这样做)。 目前我已经尝试了这一小段代码(假设t是Solve存储的types,m是Solve的MethodInfo) : private void WrapMethod(Type t, MethodInfo m) { // Generate ILasm for delegate. byte[] il = typeof(Dpm).GetMethod("ReplacedSolve").GetMethodBody().GetILAsByteArray(); // Pin […]

应该*静态的C#方法应该是静态的吗?

应该静态的C#方法应该是静态的吗? 我们今天正在讨论这个问题,而且我很尴尬。 想象一下,你有一个很长的方法,你重构了几行。 新方法可能会从父方法中获取一些局部variables并返回一个值。 这意味着它可能是静态的。 问题是:它应该是静态的吗? 这不是devise或select的静态,简单来说就是它没有引用任何实例值。

为什么C#接口方法没有被声明为抽象的或虚拟的?

接口中的C#方法是在不使用virtual关键字的情况下声明的,并且在派生类中override而不使用override关键字。 这是有原因吗? 我认为这只是一种语言方便,显然CLR知道如何处理这个问题(方法在默认情况下不是虚拟的),但是还有其他的技术原因吗? 这是派生类生成的IL: class Example : IDisposable { public void Dispose() { } } .method public hidebysig newslot virtual final instance void Dispose() cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Example::Dispose 请注意,该方法在IL中被声明为virtual final 。

为什么方法没有参考平等?

我有一个错误,我使用的方法是相互依赖的。 事实certificate情况并非如此: >>> class What(object): def meth(self): pass >>> What.meth is What.meth False >>> inst = What() >>> inst.meth is inst.meth False 为什么是这样? 它适用于常规function: >>> def func(): pass >>> func is func True

Java是否支持inner / local / sub方法?

这是我的代码。 public class SubFunction { private String drawTribleX(){ return trible("X"); } private String trible(String t){ return t + t + t; } public static void main(String[] args){ SubFunction o = new SubFunction(); System.out.println(o.drawTribleX()); } } 我可以做这样的事吗? public class SubFunction { private String drawTribleX(){ // *** move trible(t) inside drawTribleX() *** private String trible(String t){ return […]

从方法中检索调用方法名称

可能重复: 我怎样才能find调用当前方法的方法? 我有一个对象的方法在对象内的多个地方被调用。 有没有一个简单快捷的方法来获得这个方法的名字,这个方法叫做这个stream行的方法。 伪代码示例: public Main() { PopularMethod(); } public ButtonClick(object sender, EventArgs e) { PopularMethod(); } public Button2Click(object sender, EventArgs e) { PopularMethod(); } public void PopularMethod() { //Get calling method name } 在PopularMethod()我想看到Main的价值,如果它从Main调用…我想看到“ ButtonClick ”,如果从ButtonClick调用ButtonClick PopularMethod() 我在看System.Reflection.MethodBase.GetCurrentMethod()但不会让我的调用方法。 我已经看了StackTrace类,但是我真的不喜欢每次调用这个方法时运行整个堆栈跟踪。

在Ruby模块中执行每个方法调用的代码

我在Ruby 1.9.2中编写了一个定义了几个方法的模块。 当任何这些方法被调用,我希望他们每个人先执行一个特定的陈述。 module MyModule def go_forth a re-used statement # code particular to this method follows … end def and_multiply a re-used statement # then something completely different … end end 但是我想避免在每一个方法中明确地a re-used statement代码。 有没有办法做到这一点? (如果重要的话, a re-used statement会在每个方法被调用时打印自己的名字,这将通过puts __method__一些变体来puts __method__ 。

array_unique的对象?

有没有像对象的array_unique方法? 我有一堆与我合并的“angular色”对象的数组,然后我想取出重复:)

在PHP中传递数组作为参数,而不是数组

我似乎记得,在PHP中有一种方法来传递一个数组作为参数列表的函数,将数组解引用到标准的func($arg1, $arg2)方式。 但现在我迷失在如何做到这一点。 我记得通过引用传递的方式,如何“传入”传入的参数…但不是如何将数组列表中的参数列表。 它可能就像func(&$myArgs)一样简单,但是我确定不是这样。 但是,可悲的是,php.net手册至今没有透露任何信息。 不是我在过去的一年中不得不使用这个特殊的function。