I-Code habe wie untenBoxen und Unboxing Generika mit Guss Schnittstelle
public interface IFoo
{
int One { get; set; }
string Two { get; set; }
}
public class Foo : IFoo
{
public int One { get; set; }
public string Two { get; set; }
}
public class SomeDto<T>
where T : IFoo
{
public T Fik { get; set; }
public string Faj { get; set; }
}
class Program
{
static void Main(string[] args)
{
var fik = new SomeDto<Foo>() { Fik = new Foo() { One = 1, Two = "ss" }, Faj = "ss" };
var obj = (Object)fik;
// the problematic part
//=======================
var fikl = fik as SomeDto<IFoo>; //do something like that
//or
var fikl = (SomeDto<IFoo>)fik; //do something like that
}
}
Wie kann ich um diesen problematischen Teil arbeiten. Machen Sie etwas Ähnliches, um das Entpacken einer generischen Klasse zu ermöglichen, aber etwas allgemeineres wie die Schnittstelle.
Ich brauche das, weil ich Combobox mit Datenquelle auf Generika bauen. Und ich muss ein Element in der Liste finden, wobei einige Eigenschaften einen allgemeinen Wert bilden.
Würden Sie erwarten Fik in SomeDto, nun auch eine Schnittstelle von IFoo:
, so dass Sie
IDto<Foo>
zuIDto<IFoo>
so zuweisen? Das kannst du nicht tun. – DispersiaNur um Sie wissen zu lassen - die Begriffe Boxen und Unboxing beziehen sich auf ganz andere Dinge. – Stilgar