Tag: 方法

C# – 为什么在通过方法后没有改变这个变量

所以我显然对编程很新,但我想弄清楚为什么这不起作用 我正在尝试使用字符串myname,并将Mr.添加到它的开头。 我知道我可以简单地将其作为myname = “Mr. ” + myname但我试图了解如何使用方法来更改变量的值。 那么,为什么这不会改变呢? public class Program { public static void Main(string[] args) { string myname = “harry”; Console.WriteLine(myname); //output is harry namechanger(myname); //this should modify harry to Mr. Harry Console.WriteLine(myname); //output is still harry? } static string namechanger(string name) { name = “Mr. ” + name; return name; } […]

通过调用计算taxAmount的方法,无法获得除$ 0之外的任何内容

我在接下来的电话中遇到了麻烦,特别是最后一个组件: Console.WriteLine(“Taxpayer # {0} SSN: {1}, Income is {2:c}, Tax is {3:c}”, i + 1, taxArray[i].SSN, taxArray[i].grossIncome, taxRates.CalculateTax(taxArray[i].grossIncome)); 我正在调用Yield类中的CalculateTax方法,该类在main中作为taxRates启动。 这是CalculateTax方法 public int CalculateTax(int income) { int taxOwed; // If income is less than the limit then return the tax as income times low rate. if (income = incLimit) { taxOwed = Convert.ToInt32(income * highTaxRate);} else […]

帮助理解C#代码并移植到Objective-C

好吧,我有这个原型是由C#中的其他人编写的,我试图把它放到Objective-C中。 现在,我还没有任何关于C#的正式经验,所以我还不知道它的一切。 我理解前三个变量是什么,但我遇到第四和第五行(c_data)正在做的问题。 是第四个声明了一种方法,然后是第五个定义它或正在发生什么? 谢谢你的帮助! public class c_data { public double value; public int label; public int ID; public c_data() { } public c_data(double val) { value = val; } }

为什么ref和out不足以消除C#中的重载歧义?

例如,为什么这个方法Max(ref int x, ref int y)不被认为是Max(int x, int y)重载? 为什么同样out ?

从cs文件中获取方法的内容

我需要将cs文件中每个方法的内容都放到一个字符串中。 我要找的是当你输入一个cs文件时,返回一个字典,方法名称作为键,方法体作为值。 我尝试过正则表达式和反思没有成功,有人可以帮忙吗? 谢谢

在方法调用中初始化字符串数组作为C#中的参数

如果我有这样的方法: public void DoSomething(int Count, string[] Lines) { //Do stuff here… } 为什么我不能这样称呼它? DoSomething(10, {“One”, “Two”, “Three”}); 什么是正确的(但希望不是很长的路)?

有没有办法在变量中保存方法,然后再调用它? 如果我的方法返回不同类型怎么办?

编辑:谢谢你的答案。 我目前正在努力!! 我有3个方法,S()返回字符串,D()返回double,B()返回bool。 我还有一个变量来决定我使用哪种方法。 我想这样做: // I tried Func method; but it says D() and B() don’t return object. // Is there a way to use Delegate method; ? That gives me an eror saying method group is not type System.Delegate var method; var choice = “D”; if(choice==”D”) { method = D; } else if(choice==”B”) […]

.Net扩展方法(此字符串Foo)仅部分可见

这是关于.Net中扩展方法可见性(特别是C#)的问题,以及为什么intellisense可能有效,但编译器在同一段代码上失败。 想象一下…… 我有.Net 3.5类库,由一堆对象和一个Extension Methods类组成。 以下是其中一种方法: namespace MyApp.Extensions { public static class ExtensionMethods { public static string ToTitleCase(this string Origcase) { string TitleCase = Origcase; … implementation … return TitleCase; } } 要在类库本身中使用扩展方法,需要其中一个方法的每个类都需要指定: using MyApp.Extensions; 因为这是与库的其余部分不同的命名空间。 所有这一切都很好。 现在,.Net 2.0网站正确引用了这个库,类文件希望使用该库。 所以它声明它是: using MyApp.Extensions SEEMS工作得很好,当键入一个字符串时,Intellisense确实看到悬挂在字符串实例上的扩展方法: http://www.flipscript.com/test/ToTitleCase.jpg 当计划结合在一起时,我喜欢它! 然而,这是快乐的结束。 尝试构建网站时,构建失败并显示以下消息: http://www.flipscript.com/test/titlecaseerror.jpg 尝试将ExtensionMethods类直接复制到Web项目时,构建再次失败。 这一次,因为没有预料到“这个”这个词。 奇怪的是,扩展方法确实可以作为普通的静态方法: http://www.flipscript.com/test/titlecaseok.jpg …并且Build工作得很好(所以问题实际上并不是“this”关键字)。 事实上,无论ExtensionMethods类是在类库还是网站中,构建都可以工作。 换句话说,这确实解决了问题,构建将成功。 […]

如果方法返回一个接口,它意味着什么?

我看到很多方法将接口指定为返回值。 我的想法是真的,这意味着:我的方法可以返回从该接口inheritance的每个类类型? 如果没有,请给我一个很好的答案。

方法名称是否编译到EXE中?

在将 Windows应用程序项目编译为EXE后,类,方法和变量名称是否包含在MSIL中 ? 对于混淆 – 更少的名称,更难逆向工程。 而对于性能 – 更短的名称,更快的访问。 例如 ,如果通过名称调用方法: 保持名称简短 ,更好的命名查找性能。 保持名称神秘 ,反编译更难。