2015-08-07 17 views
7

otrzymuje następujące class:C# -Implicit konstruktor z dynamicznego obiektu

public class DataPair{ 
    public string Key { get; set; } 
    public object Value { get; set; } 

    public DataPair(string key, object value) 
    { 
     Key = key; 
     Value = value; 
    } 
} 

Czy jest jakaś szansa, aby zaimplementować coś podobnego

public static implicit operator DataPair(dynamic value) 
{ 
    return new DataPair(value.Key, value.Value); 
} 

Więc mogę utworzyć nową instancję w ten sposób

DataPair myInstance = {"key", "value"}; 
+1

Dlaczego nie używasz Inicjalizacji obiektów, która nazywa się deafult construtor, jeśli istnieje? –

+0

@ XaweryWiśniowiecki: Czy mógłbyś wyjaśnić, jak dokładnie nazwałbym inicjalizację obiektu? – KingKerosin

+0

Myślę, że ten przykład z dokumentacji wyjaśni to po prostu :) https://msdn.microsoft.com/en-us/library/bb397680.aspx –

Odpowiedz

1

To prawdopodobnie najbliższy użytkownik:

public static implicit operator DataPair(string[] values) 
{ 
    return new DataPair(values[0], values[1]); 
} 

i używać go lubię:

DataPair myInstance = new []{"gr", "value"}; 

To najbliższy masz zamiar dostać, jak składnia = {"gr", "value"}; jest zarezerwowana dla tablic, których nie można podklasy.