Я не совсем уверен, чего бы вы хотели достичь, но ваш тип DataStruct ошибочен.
Полагаю, не все его методы возвращают LongValue.
struct DataStruct
{
public short ShortVale;
public int IntValue;
public long LongValue;
public object GetBoxedShortValue() { return ShortVale; }
public object GetBoxedIntValue() { return IntValue; }
public object GetBoxedLongValue() { return LongValue; }
}
В противном случае вы всегда можете использовать класс Convert для попытки преобразования между различными типами.
Например:
Convert.ToInt32(SomeObject);
Пожалуйста, уточните свой пост (просто нажмите кнопку редактирования и отредактируйте его), если вы имели в виду что-то другое.
Кстати, преобразование из object
может быть довольно подвержено ошибкам, так как это базовый тип всего. Таким образом, object
может быть чем угодно, и это означает, что вы не всегда можете безопасно преобразовать object
в int или любой другой тип.
Дополнительные примеры:
int value;
try
{
value = Convert.ToInt32(someObject);
}
catch (FormatException)
{
// the convertion is unsuccessful
}
И это тоже полезно:
int myValue;
if (!int.TryParse(something, out myValue))
{
//unsuccessful
}
Надеюсь, это поможет.