将静态对象分配给另一个(非静态)变量是否会复制该对象?
Will assigning a static object to another (non-static) variable make a copy of that object?
我有一个静态的 class 用于保存整个游戏中使用的静态纹理。
public static class AssetManager
{
public static Texture2D someTexture;
....
}
我的问题是,如果我要将该静态纹理分配给另一个 class 中的变量,如下所示:
Texture2D classTexture = AssetManager.someTexture;
我会创建该纹理的副本吗?我真的不认为我会阅读它,我不认为那是静态变量应该如何工作的。我试了一下,检查了每个的 hashCode,它们似乎是一样的。但我也不确定这是否是正确的检查方法,我不想 运行 稍后在我创建一堆我不需要的新纹理时遇到问题。
C# 从不生成对象的隐式副本。
听起来您的谨慎可能来自 C++ 背景,在这种情况下,您可以将 C# 中的所有对象视为指针。
我有一个静态的 class 用于保存整个游戏中使用的静态纹理。
public static class AssetManager
{
public static Texture2D someTexture;
....
}
我的问题是,如果我要将该静态纹理分配给另一个 class 中的变量,如下所示:
Texture2D classTexture = AssetManager.someTexture;
我会创建该纹理的副本吗?我真的不认为我会阅读它,我不认为那是静态变量应该如何工作的。我试了一下,检查了每个的 hashCode,它们似乎是一样的。但我也不确定这是否是正确的检查方法,我不想 运行 稍后在我创建一堆我不需要的新纹理时遇到问题。
C# 从不生成对象的隐式副本。
听起来您的谨慎可能来自 C++ 背景,在这种情况下,您可以将 C# 中的所有对象视为指针。