[TestFixture]
public class StructFixtrue
{
[Test]
public void TestStruct()
{
DateTime a = DateTime.Now;
DateTime b = a;
Assert.AreEqual(a, b, "Two structs' value are equal.");
Assert.AreNotSame(a, b, "Two structs' instance are not same.");
Object c = new object();
Object d = c;
Assert.AreEqual(c, d, "Two objects' value are equal.");
Assert.AreSame(c, d, "Two objects' instance are same.");
}
}
结论:Struct是存在栈中。
注:值类型保存在栈中,故等值不等址;引用类型保存在堆中,故等值等址。
本文通过测试案例对比了值类型(struct)与引用类型(object)在.NET中的行为差异。值类型存储于栈中,实例间即使值相等也不共享同一地址;而引用类型存储于堆中,实例间值相等则指向同一地址。文章通过具体代码演示了这一特性,并提供了深入理解.NET内存管理的视角。
445

被折叠的 条评论
为什么被折叠?



