Если у меня есть класс с некоторым элементом значения, который я хочу хранить независимо от типа, я бы подумал, что тип объекта будет лучшим. Допустим, что объект реалистично может быть одним из трех типов: string, int, customeClass. Было бы лучше сохранить дополнительный член перечисления класса с тем, какой тип хранится в значении? Или является исполнениемСкорость «if (object is type)» в C#
if(object is string){...}
else if(object is int){...}
else if(object is customeClass){...}
достаточно быстро, что не стоит хранить дополнительную информацию?
В качестве примечания стороны убедитесь, что ваш класс структурирован и задокументирован, чтобы было ясно, что значение может быть только строка, int или customeClass. – StriplingWarrior
Сохранение типа отдельно в перечислении может быть опасным. Вы должны быть очень осторожны, чтобы это всегда было правильно. Если значение перечислимого типа вышло из синхронизации и не соответствовало типу объекта, и вы попытались вызвать метод класса, ваша программа завершится с ошибкой.Использование «is» было бы более надежным. – mbmcavoy