[解決済み】一般的な TryParse
2022-04-09 14:51:43
質問
TryParse」を使用して、文字列が指定された型であるかどうかをチェックする汎用エクステンションを作成しようとしています。
public static bool Is<T>(this string input)
{
T notUsed;
return T.TryParse(input, out notUsed);
}
シンボル 'TryParse' を解決できないので、これはコンパイルされません。
私の理解では、'TryParse' はどのインターフェースにも属していません。
これは全くできないのでしょうか?
更新してください。
以下の回答を使って、私が思いついたこと。
public static bool Is<T>(this string input)
{
try
{
TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input);
}
catch
{
return false;
}
return true;
}
なかなかうまくいくのですが、例外をそういう風に使うのは、私にはしっくりこないような気がします。
更新2:
ジェネリックを使用せず、型を渡すように変更。
public static bool Is(this string input, Type targetType)
{
try
{
TypeDescriptor.GetConverter(targetType).ConvertFromString(input);
return true;
}
catch
{
return false;
}
}
解決方法は?
を使用する必要があります。 TypeDescriptor クラスがあります。
public static T Convert<T>(this string input)
{
try
{
var converter = TypeDescriptor.GetConverter(typeof(T));
if(converter != null)
{
// Cast ConvertFromString(string text) : object to (T)
return (T)converter.ConvertFromString(input);
}
return default(T);
}
catch (NotSupportedException)
{
return default(T);
}
}
関連
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] Javaで汎用配列を作成する方法は?
-
[解決済み] 汎用型Tのクラスインスタンスを取得する方法を教えてください。
-
[解決済み] 汎用クラスやメソッドのメンバからTの型を取得する方法
-
[解決済み] C#で汎用リストをクローンする方法は?
-
[解決済み] C#でジェネリックメソッドからNULLを返すにはどうしたらいいですか?
-
[解決済み] なぜC#は汎用属性型を禁止しているのですか?
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
-
[解決済み】メソッドの戻り値の型を汎用的にする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み] プロパティまたはインデクサは、outまたはrefパラメータとして渡すことはできません。
-
[解決済み】.NETリフレクションのコストはどれくらい?
-
[解決済み] 文字列をNULL可能な型に変換する(int, double, etc...)