Tag: 引用

是否可以使用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)

C#:指向多个整数的引用/指针数组

我想在数组中引用一些短路。 我以为我可以创建短裤,然后将它们添加到arrays中。 所以…每次更改引用的对象时,都会反映在数组中,反之亦然。 做一些试验使我确信它不是那么有效。 事实上,看起来价值是转移而不是参考。 下面的代码创建了两个short,将这些作为对象添加到数组中,然后更改原始short。 但是,当访问数组中假定的引用short时它没有改变,这使我相信它是一个与原始对象无关的全新对象。 Console.WriteLine(“Testing simple references:”); short v1 = 1; short v2 = 2; object[] vs = new object[2]; vs[0] = v1; vs[1] = v2; v1 = 1024; v2 = 512; Console.WriteLine(” v1: ” + (short)vs[0]); Console.WriteLine(” v2: ” + (short)vs[1]); 我在这里误解了一些基本的东西,如果有人可以解释,我会很感激,并且可能会指出一个可以做我想做的解决方案。

如何获得WPF窗口的静态引用?

我已经尝试了很多方法来获取我的程序中窗口的静态引用。 我需要在运行时从不同的类访问其所有成员,因此需要静态引用。 我想要的是Program.Window1 ,其中Core是静态的, MyWindow是其静态成员之一。 在WinForms中,我通常在Program.cs中声明我的静态表单,但这似乎不适用于WPF及其自定义的“App.xaml”ApplicationDefinition。 我该怎么做? 注意:我已经尝试了很多方法:使用直接调用新窗口(即Program.Window1 = new Window1() )将不起作用,因为我得到一些线程无效exception。 据我所知,到目前为止,只有ApplicationDefinitions可以在WPF中启动窗口。 每当我尝试按“代码”而不是默认的XAML ApplicationDefinition的StartupUri创建一个窗口时,这是个例外: 调用线程必须是STA,因为许多UI组件都需要这个。

C#out参数vs返回

所以我是C#的新手,我很难理解。 而不是仅仅从函数返回一些东西 using System; class ReturnTest { static double CalculateArea() { double r=5; double area = r * r * Math.PI; return area; } static void Main() { double output = CalculateArea(); Console.WriteLine(“The area is {0:0.00}”, output); } } 与此相比 using System; class ReturnTest { static void CalculateArea(out double r) { r=5; r= r * […]

字符串对象真的是通过引用?

我正在学习(新手).NET,我有些疑惑。 从书中读到的例子我了解到String是对象,然后是Reference Type。 所以,我做了这个测试,结果与我的预期不同: 我真的很好奇,这是一个例外,因为“字符串”是特殊类型吗? class Program { static void Main(string[] args) { SByte a = 0; Byte b = 0; Int16 c = 0; Int32 d = 0; Int64 e = 0; string s = “”; Exception ex = new Exception(); object[] types = { a, b, c, d, e, s, ex }; // […]

名称空间“System.Data”中不存在类型或命名空间名称“DataSetExtensions”(您是否缺少程序集引用?)

我知道这是一个常见错误,但我对项目中添加的System.Data.DataSetExtensions.dll有正确的引用,我的项目是为.net 4.5构建的SQL CLR项目,我在下一行收到错误: using System.Data.DataSetExtensions; 我还检查了dll的属性,它引用了4.5 dll的正确版本,那么还有什么可能导致这个问题呢? 这是SQL CLR项目的问题吗?

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#中的ref和out是否与C ++中的指针相同?

我只是用C#做了一个Swap例程: static void Swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } 它与C ++代码的作用相同: void swap(int *d1, int *d2) { int temp=*d1; *d1=*d2; *d2=temp; } 那些ref和out关键字如C#的指针而不使用unsafe代码?

c#引用变量mem分配

有没有人知道在创建引用类型变量时占用了多少内存? String s =“123”; 将占用多少内存作为参考,而不是指向它的数据?

ASP.NET单引号转换为'

注意:最有可能这是一个双重问题,但由于我没有找到明确的答案,无论如何我都会问它。 在ASP.NET中,我想在CheckBox的onclick事件中添加一些JavaScript。 我简化了这个案例: 生成的HTML如下: Test 特别困扰我的是,单个引号“自动”转换为“'”。 如果我省略了标记中的onclick并在Page_Load中分配它,则HTML中会显示完全相同的结果。 protected void Page_Load(object sender, EventArgs e) { this.TestCheckBox.Attributes[“onclick”] = “alert(‘test’);”; } 任何人都知道发生了什么? 或者如何修复/避免它?