2013-08-28 4 views
-1

общественного класса EncryptVal { частное EncryptVal (значение Т) { Установить (значение); }перегрузка операторов "+" и "++" в C#

// Encrypt 
public bool Set(T value) 
{} 

// Decrypt & return (T)value; 
public T Get() 
    {} 

public static implicit operator EncryptVal<T>(T value) { 
    //shuffle bits 
    return new EncryptVal<T>(value); 
} 

public static implicit operator T(EncryptVal<T> value) { 
    //unshuffle bits 
    return value.Get(); ///// error ... 
} 
} 

я не мог перегрузить оператор оператор + & ++. Как я могу это сделать?

использование:

EncryptVal<int> e = 42; 
EncryptVal<int> f = 1; 
Console.WriteLine("decrypt int count \t= {0:d}", f.Get()); // ok 
Console.WriteLine("decrypt int count \t= {0:d}", f); // error 
Console.WriteLine("decrypt int count \t= {0:d}", e); //how? 
+6

Код, который вы показываете, не имеет никакого отношения к вопросу. Я не вижу перегрузки оператора + или его использования. –

+0

как cna я делаю это + оператор & ++ оператор. и T - int, float, double. и вы получите значение переменной только без использования() get? – user2725053

ответ

0

перегружать + или ++ вы просто добавить +/++ операторы, которые вы хотите ...

public static EncryptVal<T> operator ++(EncryptVal<T> value) 
{ 
    throw new NotImplementedException(); // your implementation here 
} 
public static EncryptVal<T> operator +(EncryptVal<T> lhs, string rhs) 
{ 
    throw new NotImplementedException(); // your implementation here 
} 
public static EncryptVal<T> operator +(EncryptVal<T> lhs, EncryptVal<T> rhs) 
{ 
    throw new NotImplementedException(); // your implementation here 
} 
public static EncryptVal<T> operator +(EncryptVal<T> lhs, int rhs) 
{ 
    throw new NotImplementedException(); // your implementation here 
} 
public static EncryptVal<T> operator +(bool lhs, EncryptVal<T> rhs) 
{ 
    throw new NotImplementedException(); // your implementation here 
} 

Неясно, как это относится к остальной части вопроса , хоть. В частности, Console.WriteLine, вероятно, захочет больше public override ToString().

Смежные вопросы