私はこのコードを持っている:エラーメッセージ:「型 '文字列を変換できませんか?' 「文字列」に「
//Return null if the extension doesn't have the value, returns the value if it does.
private T? getValue<T>(IEnumerable<Extension> extension, string attributeName)
{
IEnumerable<Extension> ext = extension.Where(e => e.attributeName == attributeName);
if (ext.Count() > 0)
{
return (T)ext.First().Attribute;
}
return null;
}
を私はそれが好きで呼んでいる:
//This works:
retVal.byteValue= getValueFromExtension<byte>(u, "ByteToGet") ?? 0;
//This doesn't work:
getValueFromExtension<string>(u, "Text") ?? "";
私はコンパイルエラーが出ます:」エラーメッセージ:「型「文字列を変換できませんか? '
「「文字列」に、私は上記のコードで効果的にアイデアをどのように行うことができる新しい方法を作成せず?それは??演算子、そう、もしヌルだ場合、私はチェックしてるような気がします文字列がnullの場合、常に空の文字列に設定されます。文字列の場合はどうしたらよいでしょうか?
上記のbyteValueはbyte型で、FYIはバイトではありません。
このコードは、今までにコンパイルしていますか?私は 'T? 'と混乱しています。メソッドの戻り値型 – sll
' getValueFromExtension'とは何ですか? – Oded
あなたのメソッドが 'struct'制約なしでコンパイルされる理由を理解できません。 – CodesInChaos