C# typedef
Хочется дать по мозгам проектировщикам C#, не предусмотревшим элегантного решения создания псевдонима для типов.
В Delphi:
interface
type
TEntityId = integer;
В C++ (пишем в заголовочный файл AppTypes.h):
typedef int TEntityId;
в коде
#include "AppTypes.h"
В C# три варианта и все плохие:
using TEntityId = System.Int32 // видимость только в текушем файле
public class TEntityId : System.Int32 // не работает для простых типов и sealed-классов
public class TEntityId<int> // громоздкая конструкция, лишний код манипуляции значением
{
private int еntityId;
public int Value { get... set... }
}
то же, но с параметризацией:
public class TEntityId<ТTypeOfId>
{
private ТTypeOfId еntityId;
public ТTypeOfId Value { get... set... }
}
Зачем это надо? Представьте, что мне надо вместо TEntityId = int использовать Guid или Int64...
blog comments powered by Disqus