簡體   English   中英

是否可以將Type更改為給定類型?

[英]Is it possible to change Type to a given type?

當我有一個盒裝值,如:

object input = 31.33M;

我可以使用此方法將其轉換為可轉換類型:

public static T ToType<T>( object value)
 {
  return (T) Convert.ChangeType(value,typeof (T));
 }

所以兩者:

Console.WriteLine (ToType<double>(input));
Console.WriteLine (ToType<decimal>(input));

將返回

31.33 //as double
31.33 //as decimal

(讓我們拋開精確問題)

好的。

但是現在我正面臨着(我正在使用公開方法描述符及其參數類型的WebAPI)我有一個給定類型的情況。

所以現在我有:

Type SomeoneSaysMyTypeIs=typeof(decimal)

但現在我不能使用泛型類型參數。

如何增強我的工作方法:( 偽代碼

ToType(SomeoneSaysMyTypeIs,input); //return type :decimal  , not object

我找到了解決方案,但有很多if's ...

可能是我沒有正確理解你的問題(如果我這樣做,請告訴我),但是引入另一種方法呢:

public static object ToType(object value, Type t)
{
    return Convert.ChangeType(value, t);
}

您看到的與直接調用Convert.ChangeType相同:

Convert.ChangeType(value, t);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM