我只想存储几个常用的数据信息,且是只读的
public static class Wx
{
public static string KId => "123456";
public static string KCode => "abc";
}
public struct Wx2
{
public static string KId => "123456";
public static string KCode => "abc";
}
如果结构体和类中只存静态成员,调用方式一样,两者在性能上到底有没有区别?这种情况下,使用哪种更为合适?
没有区别。 鉴于你的需求(只读,静态),可以使用常量。
public struct Wx3
{
public const String KId = "123456";
public const String KCode = "abc";
}
第一个应该会好用一点
首先,结构中保留的仅仅是exception的引用,只占4个字节,而真正分配内存是在堆上。所以你不用担心内存回收的问题。
再者,是不是应该用class?
如果你使用struct,那么你要知道,因为其是值类型,struct类型的变量作参数时,传递的是拷贝。而如果使用class,则传递的仅仅是一个地址,4字节。所以,如果你的struct比较庞大,而且会经常用作参数,那你就要考虑使用class而不是struct了。
看具体情况吧,最好写代码测试下。我曾经写过一个程序,刚开始用class作为参数传递,后来改为了结构体,速度变快很多。不过如果是结构体,就无法多个变量指向同一个内存地址,如果存在大量重复的数据,还是类更好
楼上正解,常量最好
除非很特定的需求或是很明显的定义,否则不建议使用 struct