私は次のコードを持っています:
public class Processor
{
private Query _query =
new SpecificQuery1();
//OR
//new SpecificQuery2();
public void ProcessItem(dynamic dynamicResult)
{
//Can't use intellisense on dynamicResult
var staticResult = dynamicResult as _query.GetSomeType();//Can't do it :(
//Can use intellisense on staticResult
}
}
そして、驚くべきことに、それはコンパイルされません。dynamic を var にキャストする方法はありますか? ばかげているように聞こえるかもしれませんが、この部分は何度も編集されるため、誰かが QueryImplementation を変更すると、ProcessItem() の型も変更する必要があります。ステップ数を 1 に減らしたい - SpecificQuery() を置き換えるだけで、型が自動的に変更されます。
では、言い換えさせてください。どのコンストラクターが基本クラス Query に割り当てられているかに基づいて、dynamicResult (またはそのキャストの一部) で Intellisense を使用する方法があるかどうかを知りたいです。
ありがとう
編集:申し訳ありませんが、おそらく間違って尋ねました。dynamic と var とは何かを理解しています。動的にインテリセンスを使用するつもりはありませんでした。dynamic を var に実際にキャストするつもりはありませんでした。
私が言いたかったのは、ダイナミックがどのタイプになるかについてコンパイル時の知識がある場合(それはクエリ実装に格納されます-静的にすることも、好きなものをconstにすることもできます)-この知識を使用できる方法はありますかProcessItem() でインテリセンスを有効にするには?