18 Eylül 2017 Pazartesi

Generics ve Constructor

Örnek
Elimizde şöyle bir sınıf olsun.
class Either<A, B> {

  public Either(A x) {}
  public Either(B x) {}
}
Şu kod hangi constructor'ın çağrılacağı belli olmadığı için derlenmez.
var e = new Either<string, string>("");
Şöyle yaparız
class Either<A, B> 
{
  private Either(A a) { ... }
  private Either(B b) { ... }
  public static Either<A, B> First(A a) => new Either<A, B>(a);
  public static Either<A, B> Second(B b) => new Either<A, B>(b);
  ...
}
...
var ess = Either<string, string>.First("hello");

Hiç yorum yok:

Yorum Gönder