- 1
- 2
- 3
- 4
- 5
- 6
- 7
void makeGetSet(ref int delegate() get, ref void delegate(int) set)
{
int _data = 0;
get = {return _data;};
set = (int Data){_data = Data;};
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+117
void makeGetSet(ref int delegate() get, ref void delegate(int) set)
{
int _data = 0;
get = {return _data;};
set = (int Data){_data = Data;};
}
-это что ? О.о
может быть, это C# 4.0?
Мне кажеться, что здесь не хватает static.
get = delegate {return _data;};
set = delegate (int Data){_data = Data;};
get {return _data;}
set {_data = value;}
Сабж - какая-то вымышленная хрень, в C# например запрещено ставить точкую с запятой после }, УЖЕ не скомпилируется. Вряд ли в 4.0 поменяли правила
Не говоря уже о ref void delegate(int) set
Андерс Хейльсберг перевернулся в гробу (он в нём спит)
А вообще должно использоваться как-то типа:
Получение 2х делегатов, а потом использование, как установка или получение значения переменной _data.
Тогда всё, раз гест не знает -- код нежизнеспособен.
вот так работает!!
[code lang=C#]
void makeGetSet(ref Func<int> get, ref Action<int> set)
{
int _data = 0;
get = delegate { return _data; };
set = delegate(int Data) { _data = Data; };
}
[code]