私はそれが少し一口で、完全に理解できないかもしれないことを知っています. だからここに私がやろうとしていることの例があります。
public class TypeWithString
{
public string MyString { get; set; }
}
string s = "We Want Moshiach Now";
TypeWithString tws = new TypeWithString();
object o = s;
dynamic d = tws;
d.MyString = o;
このコードは驚くべきことにエラーを生成しますRuntimeBinderException: Cannot implicitly convert type 'object' to 'string'
。MyString
はタイプでありstring
、保持されてo
いるのはstring
.
これは DLR のバグですか、それとも欠点ですか?
それを回避する方法はありますか?
事前にタイプがわからない場合。しかし、ダックタイピングに準拠していることは知っています。つまり、書かれていないインターフェースを実装していることを知っています。本当に正しい型であるときに、ある変数を別の変数に割り当てることができる方法はありますか?
どうもありがとう