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++引用一样对待,只是可以重新分配它们。