Скажем, я хочу получить дополнительную проверку типов для работы с примитивами, которые подразумевают разные вещи семантически:
public struct Apple
{
readonly int value;
// Add constructor + operator overloads
}
public struct Orange
{
readonly int value;
// Add constructor + operator overloads
}
Суть в том, что мы не можем сравнивать "яблоки с апельсинами", поэтому обертывание фактического int в структуре означает, что мы получаем проверку типов и некоторую дополнительную читаемость и документацию по коду.
Мой вопрос: каковы накладные расходы, связанные с этим, как с точки зрения памяти, так и с точки зрения скорости? Поскольку structs являются типами значений, будут ли переменные, содержащие эти структуры, 32 бита или больше? Что касается служебных издержек использования этих структур вместо примитивов - есть ли большие накладные расходы для перегрузки оператора?
Любые другие советы по мудрости этого?