このプロパティはCreate
経由でインスタンスを取得するために使用されるファクトリパターン、からである。そして、ラムダ式は、プラットフォーム固有のプロジェクトのプロパティデリゲートに割り当てられている使用アクションの代わりのFunc
public class Dialer
{
public static Func<Dialer> Create;
public bool MakeCall(string number) ...
public Dialer(IDialer impl) { ... }
}
Dialer.Create =() => new Dialer(new PhoneDialeriOS());
と私は
this.dialer = Dialer.Create();
を使用して、プラットフォームに依存しないプロジェクト内のインスタンスを取得すると
は今、私はこの権利を取得する場合、割り当ては今
Dialer.Create = (d) => new Dialer(new PhoneDialeriOS());
ですが、どのように私はインスタンスを取得できますか?
public static Action<Dialer> Create;
を使用していますよthis.dialer = Dialer.Create();
を使用することにより
this.dialer = // ?
私は「アクション」
の必要な仮パラメータ「OBJ」に対応するが、それはない与えられた引数はありません
エラーCS7036を取得
PhoneDialeriOS
のインスタンスを渡すのが理にかなっています。これは、プラットフォームに依存しないコードにはアクセスできないためです。私はそれについて誤解を招いているか、何かが足りないと思っています。
それは事です。この例では 'public static Action Create;'について述べていますが、インスタンスを渡すことができないため、これはできません。 Imhoの例は偽です。 'public static Action 作成;は唯一正しい方法です。 –
testing
'public static Action Create'は依然として何も返さないデリゲートです。 「唯一の正しい方法」として何かを生み出すことができない工場をどう考えることができるか分かりません。 –
Joey
あなたは正しいです。コピー&ペーストエラーが発生しました。 'public static Func作成;は唯一の正しい方法です。 –
testing