假如我想获取额外的类型检查,以便处理在语义上具有不同含义的基本数据类型:
public struct Apple
{
readonly int value;
// Add constructor + operator overloads
}
public struct Orange
{
readonly int value;
// Add constructor + operator overloads
}
要点是我们不能将“苹果”与“橙子”进行比较,因此将实际整数封装在结构体中意味着我们获得了类型检查、一些额外的可读性和代码文档。
我的问题是:这样做会带来什么开销,无论是在内存还是速度方面?由于结构体是值类型,包含这些结构体的变量是否为32位或更大?使用这些结构体而不是基元的性能开销如何——操作符重载是否存在较大的开销?
对于这样做的智慧,您有什么其他建议吗?