【发布时间】:2020-12-04 08:47:06
【问题描述】:
我是 c# 新手(一般是编码),我找不到任何等效的指针。
当我搜索谷歌时,我得到了安全/不安全之类的东西,但这不是我需要的。
就像在 c++ 中一样,如果你有一个指针并且它指向某个值,那么指针的变化会导致原始变量的变化。
c#中有这样的东西吗?
例子-
static class universal
{
public static int a = 10;
}
class class_a
{
public void change1()
{
universal.a--;
}
}
class class_b
{
public void change2()
{
some_keyword temp = universal.a; //change in temp gives change in a
temp-= 5; //the purpose of temp is to NOT have to write universal.a each time
}
}
...
static void Main(string[] args)
{
class_b B = new class_b();
class_a A = new class_a();
A.change1();
Console.WriteLine(universal.a);//it will print 9
B.change2();
Console.WriteLine(universal.a);//it will print 4
Console.ReadKey();
}
编辑- 谢谢@Sweeper 我得到了答案 我不得不使用 ref int temp = ref universal.a;
【问题讨论】:
-
就像在 c++ 中一样,如果你有一个指针并且它指向某个值,那么指针的变化会导致原始变量的变化。 c# 中有这样的东西吗? - 再看一遍!
-
Pass By Reference会解决你的问题。
标签: c# c++ class pointers call-by-value