【发布时间】:2015-11-09 00:53:28
【问题描述】:
如何确定.NET 中的类是大还是小?它是根据它的属性或字段的数量、它的属性/字段的数据类型来衡量的吗?或返回方法类型?它的方法的参数?其方法的访问修饰符,虚拟方法?谢谢..
class A
{
string x { get; set; }
}
class B
{
int x { get; set; }
}
在这个例子中,如果我像这样实例化 A 类和 B 类
A objA = new A();
B objB = new B();
类 objA 是不是更大的类,因为它拥有一个 String 属性,而 objB 只拥有一个 Int?尽管我没有为其属性设置任何值。谢谢
编辑:只是为了澄清我的问题
假设我有一堂课
public class Member
{
public string MainEmpId { get; set; }
public string EmpId { get; set; }
}
和另一个班级
public class User
{
public string AccessLevel { get; set; }
public string DateActivated { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Mi { get; set; }
public string Password { get; set; }
public string UserId { get; set; }
public string UserName { get; set; }
public string Active { get; set; }
public string ProviderName { get; set; }
public string ContactPerson { get; set; }
public string Relation { get; set; }
public string Landline { get; set; }
public string MobileNo { get; set; }
public string Complaint { get; set; }
public string Remarks { get; set; }
public string Reason { get; set; }
public string RoomType { get; set; }
}
如果我这样实例化它
Member A = new Member();
User B = new User()
对象 A 比对象 B 大吗? 我知道这是一个奇怪的问题,但我相信对象的每个实例化都会占用内存空间..
【问题讨论】:
-
这是一个模棱两可的问题...当您说“类大小”时,您是包括类具有指针的所有引用/对象使用的内存,还是仅包括类本身和指针本身的内存用途?
-
你的意思是内存空间吗?如果是这样,我认为您无法真正衡量它,也不应该真正关心那么多恕我直言。
-
是的,我的意思是内存中的大小。我认为这对我很重要,因为我使用值对象,我的一些对象有 100 个属性!我将这些对象放在 List
之类的集合中。只是想知道它是否对性能有影响... -
@Nick Craver,我的意思是实例化或使用时内存中的对象大小..
-
@CSharpNoob - 你还没有澄清任何问题,这取决于你在测量什么,当你说你存储一个字符串时,它实际上是对 another 位置的引用包含字符串的内存,但在类本身上你只存储一个指针,所以你是在计算字符串使用的空间,还是只计算指向字符串的指针?