можно использовать длинный тип данных. Несомненно, Вы не будете в состоянии сохранить части там, но если Вы кодируете свое приложение для хранения пенсов вместо фунтов, Вы будете в порядке. Точность составляет 100% для длинных типов данных, и если Вы не работаете с огромными количествами (используйте 64-разрядный длинный тип), Вы будете в порядке.
, Если Вы не можете передать под мандат пенсы хранения, затем оберните целое число в класс и использование это.
Самый простой способ справиться с этим - сделать неуниверсальную перегрузку функции чтения с одним параметром типа:
public object Read(Type t)
И затем сделать так, чтобы общая версия вызывала неуниверсальную версию:
public T Read<T>() where T : struct
{
return (T)Read(typeof(T))
}
Вам нужно будет создать methodinfo и вызвать метод Read:
MethodInfo method = typeof(DataStream).GetMethod("Read");
MethodInfo generic = method.MakeGenericMethod(fieldType);
object objData = generic.Invoke(ds, null);
Наверное, лучше было бы пойти по пути Ли. Generic - это сокращение во время разработки, чтобы вам не приходилось писать общий код для многих различных типов классов. Во время компиляции каждый вызов универсального метода или класса в основном генерируется как полностью отдельный класс.
Гораздо проще просто изменить тип и использовать отражение, что вам придется делать в любом случае.