Сильно печатать значения идентификации в C# ⇐ C#

Место общения программистов C#
Anonymous
Сильно печатать значения идентификации в C#

Сообщение Anonymous »

Есть ли способ сильно ввести значения целочисленного идентификатора в C#? id class/struct, который можно использовать для представления идентификаторов данного типа? Вы не можете иметь абстрактную структуру, и неявные /явные актеры не будут унаследованы. < /P>

public abstract struct Id
{
int _value;

public Id(int value)
{
_value = value;
}

// define implicit Id to int conversion operator:
public static implicit operator int(Id id)
{
return _value;
}

// define explicit int to Id conversion operator:
public static explicit operator Id(int value)
{
return new Id(value);
}

public bool Equals(object obj)
{
if(GetType() == obj.GetType())
{
Id other = (Id)obj;
return other._value == _value;
}
return false;
}

public int GetHashCode()
{
return _value.GetHashCode();
}
}

struct PersonId : Id { public PersonId(int value) : base(value) {} }
struct ProductId : Id { public ProductId(int value) : base(value) {} }
< /code>

Есть ли действительные способы выполнить что -то подобное? Как еще мы можем доказать, что тип целочисленных идентификаторов не запутался в большом приложении?

Подробнее здесь: https://stackoverflow.com/questions/537 ... in-c-sharp

Вернуться в «C#»