gpt4 book ai didi

来自 C++ 指针的 C# 动态变量

转载 作者:太空狗 更新时间:2023-10-29 23:26:20 25 4
gpt4 key购买 nike

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

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

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

所以在 C# 中我必须使用我猜是静态引用还是其他一些动态分配方式?我不想让 100 个漂浮在那里。我这辈子都无法通过 Google 找到正确的词来解决这个问题。

C# 中的等价物是什么?

最佳答案

Super simple C# question

其实这是一个很深的问题。

I'm coming from a C++ background and am a little unsure of the solution to not having pointers.

C# 确实有指针,但几乎从未使用过。

For example, if I wanted a single reference to a variable

问题就在那里。不要再想了我需要一个变量的引用,所以我需要一个指针。是的,指针是对变量引用的实现,但在 C# 中,这是非常错误的思考方式。在 C# 中,您可以以几种不同的方式引用变量,但您几乎不需要。您在 C# 中所做的是引用对象,而不是变量

在 C# 中,属于引用类型 的值自动是对该类型对象的引用

所以:

class C 
{
public int x;
}

类型 C 的值是对 C 实例的引用;这就是“类”在 C# 中的含义。所以你可以说:

class D 
{
public C c;
}

D 的一个实例有一个类型为 C 的字段。那是一个变量。变量的值是对 C 类型实例的引用。该实例有一个 int 类型的变量 x;该变量的值不是对任何内容的引用,它只是整数。

关于来自 C++ 指针的 C# 动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32402853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com