30.10.2009, 17:45
|
#3 (Ссылка на пост)
|
Забанен вапще
Пол:
Благодарил(а): 57
Благодарили 28 раз в 15 постах
Галерея:
0
Вес репутации: 0
|
Цитата:
Сообщение от *Ihor*
Есть головоломка которую пытаюсь долго и нужно решить на C#
По логике все было понятно а вот в реальности работа компилятора , да и сами законы C# сделали обратное.
Задача в том что нужен синтаксис вызова методов определенной структуры:
PHP код:
[size=2][font=Consolas] test1(test2, 2); [size=2][font=Consolas] test1(test2*2+test2/3, 2);[/font][/size] [size=2][font=Consolas][/font][/size][/font][/size]
через проперти все вроде реально, и все работает , за искючением ситуации, что test1 получает test2 и даже test2() в статичном виде, я так понимаю на этапе компиляции. А вот нужно чтобы вызов был динамичный. Т.е. test1() получал , какбы не значение а сылку на метод и при обращении ее запускал по типу eval().
Головоломка пока оказалась не позубам, перепробовла тучи вариантов.
Вот ниже пример кода для теста в котором обращение к test2 идет 2 раза на цикл, но реально консоль показывает что в каждом цикле test1 значение test2 одинаковое
PHP код:
using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public int count = 0; public int test1(int val, int exp) { for (int i = 0; i < exp; i++) { Console.Write(val); } return 1; } public int test2 { get { count += 1; return count; } } private void button1_Click(object sender, EventArgs e) { for (var i = 0; i < 5; i++) { test1(test2, 2); } } } }
Консоль в этом варианте имеет вид: 1122334455 вместо 12345678910
|
Привет. Есть такая проблема в этом проекте. Если не решил, то обращайся. Помогу
|
|
|