У меня есть два класса, которые близки к одному и тому же, за исключением одного типа переменной.
Следующий пример должен продемонстрировать проблему.Избегайте нескольких классов с несколькими различными свойствами
class Customer
{
byte Reputation;
const byte MaximumReputation = 255;
int Data;
string MoreData;
Briefcase EvenMoreData;
public Customer(byte reputation, int data, string moreData, Briefcase evenMoreData)
{
Reputation = reputation;
Data = data;
MoreData = moreData;
EvenMoreData = evenMoreData;
}
public float Level()
{
return Reputation/MaximumReputation;
}
public string Information()
{
return Data.ToString() + ", " + MoreData + EvenMoreData.Id;
}
}
class CustomerDeluxe
{
ushort Reputation;
const byte MaximumReputation = 255;
int Data;
string MoreData;
Briefcase EvenMoreData;
public CustomerDeluxe(ushort reputation, int data, string moreData, Briefcase evenMoreData)
{
Reputation = reputation;
Data = data;
MoreData = moreData;
EvenMoreData = evenMoreData;
}
public float Level()
{
return Reputation/MaximumReputation;
}
public string Information()
{
return Data.ToString() + ", " + MoreData + EvenMoreData.Id;
}
}
С Customer
сек репутации не будет превышать 255, можно хранить в байте. В моем приложении это поле представляет собой большой массив. Вот почему я хотел бы выбрать самый маленький тип. Но для нескольких случаев, когда поле может превышать байт, должен быть еще один класс.
Как я могу «объединить» эти два класса?
Спасибо за быстрый ответ, я не был осведомлен о дженериков. Не могли бы вы быть добрыми и расширить свой ответ с помощью синтаксиса общего массива, такого как byte [] vs ushort []? – Leander
Я добавил несколько рефакторингов, чтобы действительно упростить и очистить вещи. Просто передайте тип в угловые скобки '' или '' –
CodingYoshi
Спасибо за ваше время. Я понял массив, у меня просто был умственный разрыв. – Leander