super 简单的C#问题,因为我试图更好地学习这种语言。我来自C++背景,对于不确定没有指针的解决方案有点不确定。

例如,如果我想要对变量的单个引用,则将其声明为

class Foo{
private:
    SomeClassType* sct;
    SomeOtherClass* soc;
public:
    Foo(SomeClassType* xSct, SomeOtherClass* xSoc) : sct(xSct), soc(xSoc) {}
}

因此,在C#中,我必须使用猜测静态引用还是其他动态分配方式的方法?我不希望其中的100个漂浮在那里。
在Google看来,我一生都无法用正确的话来解决这个问题。

C#中的等效项是什么?

最佳答案

C#的引用将在这里替换您的指针:

class Foo {
  SomeClassType sct;
  SomeOtherClass soc;

  public Foo(SomeClassType xSct, SomeOtherClass xSoc) {
    // Note: No initializer list, we have to do those assignments manually
    sct = xSct;
    soc = xSoc;
  }
}

实际上,对于大多数用法,它们的行为几乎相同(异常(exception)是指针算术,无论如何这里都没有用)。始终使用C#中的点.来访问这些实例的成员。没有像C++中的->

在某种程度上,您可以将它们像C++引用一样对待,只是可以重新分配它们。

10-04 22:10