Tag: 参数传递

C# – 如何使用默认值跳过参数?

请考虑以下方法示例: public void MyMethod (string par1, bool par2 = “true”, string par3=””) { } 现在让我们说我调用MyMethod并将par3的值设置为“IamString”。 如果不将par2的值设置为true或false,我怎么能这样做呢? 我基本上想要将par2值保留为默认值。 我问这个是因为在Flash的ActionScript中可以通过使用关键字default来做到这一点,所以我可以调用MyMethod(“somestring”,默认,“IamString”),par2将被解释为true ,这是它的默认值。 我想知道C#中是否也有可能。

是否可以使用params关键字通过ref传递对象?

我想通过ref将一些参数传递给一个方法,但我不知道参数的数量。 我尝试过类似的东西,但它不起作用:D: public void myMethod(ref params object args) 我会考虑在params中传递指针,但它在C#中有点复杂:/ / 可能的解决方法? 编辑: 我想封装一部分代码,基本上是这样的: …. var collectionA = new List(); var myObject = // an object Optimizer.Optimize(ref collectionA, ref myObject); // cache //{ MaClass.Treatment(); // use collectionA stored in cache via Optimizer // the collectionA is modified in MaClass.Treatment() … //} Optimizer.EndOptimize(); … 目标,如果调用封装到我的优化器中,则不能一直请求我的服务器进行相同的处理(HTTPRequest)

如何将Class作为方法的参数传递?

我有两个class: Class Gold; Class Functions; 类Functions有一个方法ClassGet ,它有2个参数。 我想发送类Gold作为类Functions一个方法的参数。 这怎么可能? 例如: public void ClassGet(class MyClassName, string blabla) { MyClassName NewInstance = new MyClassName(); } 注意:我想将MyClassName作为字符串参数发送到我的方法。

单击按钮时在表单之间传递变量

我有两个表格。 一个用于执行所有主要代码的地方。 使用此方法单击菜单项时会显示另一个表单: Form2 videoSettings = new Form2(); private void videoToolStripMenuItem_Click(object sender, EventArgs e) { videoSettings.Show(); } 然后打开的表单包含用户可以为应用程序设置一些设置的字段。 然后单击“保存”按钮时我想要这个变量: public int deviceIndex; 从原始表格中取出。 所以我想知道我是否可以在Form1中添加任何事件或什么东西来检测在videoSettings(Form2)中点击保存按钮的时间?

C# – 通过引用传递参数到构造函数,然后从方法中使用它们

在下面的代码中,我试图从类TestClass中获取一个方法(Work)来更改主程序中某些变量的值,而不必返回它们。 变量通过TestClass构造函数中的引用传递。 class Program { static void Main(string[] args) { int a, b, c, d; a = 5; b = 10; c = 20; d = 25; Console.WriteLine(“Main before TestClass: a=” + a + ” b=” + b + ” c=” + c + ” d=” + d); TestClass testObj = new TestClass(ref a,ref b,ref […]

使用C#在表单之间传递数据的最佳方法

这更像是一个基于理论的问题。 我正在为C#中的最终项目设计,即创建Jeopardy。 我的问题是,在它们之间传递数据的最佳方法是什么? 例如,标题要求游戏在启动后显示选项屏幕。 在这里,他们将选择球员的数量和他们的名字。 我知道在我的gameform load事件中,我可以将这些东西指定为参数,并将它们作为参数从optionsform传递。 这看起来很麻烦,是否有更有效的方法来创建项目范围的变量,无论我目前使用哪种forms,我都可以参考? 感谢您的回答,我们将不胜感激! – 年轻的Padawan编码员

有没有办法省略参数?

假设我有一个带参数的函数,但是我不需要它的值。 如果给定结果将丢弃,有没有办法传递没有实际参数? 编辑: 虽然这个问题已经被投票选为可选输出参数,但只有从方法创建者的角度来看才是这样。 如果您是该方法的用户,那么您不想让参数成为可选参数,只是在不声明变量的情况下不使用它。 虽然这是不可能的,但使用C#7.0可以在方法调用中声明它。 所以代替: int unusedValue; TryGetValue(“key”, out unusedValue); 你得到: TryGetValue(“key”, out int unusedValue); 甚至: TryGetValue(“key”, out _); 这应该作为答案添加,但是: 我不能为这个问题这样做,因为它被标记为一个傻瓜; 这个问题的问题似乎是一个实际上要求不同的东西。

传递属性本身作为C#中的参数

我正在寻找一种方法将属性本身传递给一个函数。 不是财产的价值。 函数事先不知道哪个属性将用于排序。 此示例中最简单的方法是:使用不同的参数类型创建4个覆盖。 其他方法是使用typeof()内部函数。 当Class1具有数百个属性时,这两种方式都是不可接受的。 到目前为止我找到了以下方法: class Class1 { string vehName; int maxSpeed; int fuelCapacity; bool isFlying; } class Processor { List vehicles = null; Processor(List input) { vehicles = input; } List sortBy(List toSort, string propName) { if (toSort != null && toSort.Count > 0) { return toSort.OrderBy(x => typeof(Class1).GetProperty(propName).GetValue(x, null)).ToList(); } else […]

在表单之间传递数组和在数组中管理

我想将一个数组从Form1传输到Form2,然后在Form2上添加一些值到数组。 在Form1按钮上单击我把这段代码: int[] arrayOfInt = new int[4]; arrayOfInt[0] = 19; arrayOfInt[1] = 12; Form2 frm2 = new Form2(); frm2.TakeThis(arrayOfInt); frm2.Show(); 在form2中,我创建了TakeThis(int[]) ,它捕获form1中的值并在标签上显示数组的值。 现在,我无法想象如何向数组添加一些值。 例如arrayOfInt[2]和arrayOfInt[3]并发送到Form3。 编辑 : 我决定使用List来存储我的数据,但最后我必须将列表转换为数组,因为我正在对数据进行一些报告和数学运算。 此示例与上面的示例不同。 在此商店中,所有来自列表中的文本框,combox的输入。 最后,我需要将列表转换为数组。 我做了什么,我创建了一个新的全局类: static class List{ static List list; public static void NewList(){ list=new List(); } public static void Save(string value){ list.Add(value); } public static void Display(){ […]

如何使用P / Invoke将MemoryStream数据传递给非托管C ++ DLL

我需要您的帮助以下方案: 我正在从硬件读取一些数据到MemoryStream(C#),我需要将这些数据在内存中传递给在非托管C ++中实现的dll(使用指针??)。 读取的数据(流入)非常大(兆字节)。 我知道我可以P / Invoke这个dll,但我不确定如何将流数据的指针/引用传递给C ++ API? 我必须承认我很困惑,因为我是C#的新手 – 我需要使用unsafe / fixed,因为数据很大或者这些是不相关的,因为MemoryStream对象是由GC管理的吗? 一些示例代码/详细描述将非常有用。 谢谢 非托管API的签名: BOOL doSomething(void * rawData,int dataLength)