Показать сообщение отдельно
Старый 30.10.2009, 17:45   #3 (Ссылка на пост)
Honer
Забанен вапще
Пол:
 
Активность Longevity
0/20 15/20
Today Сообщения
0/5 sssssss87
Благодарил(а): 57
Благодарили 28 раз в 15 постах
Галерея: 0
Вес репутации: 0 Honer идет по правильному пути
Цитата:
Сообщение от *Ihor* Посмотреть сообщение
Есть головоломка которую пытаюсь долго и нужно решить на C#
По логике все было понятно а вот в реальности работа компилятора , да и сами законы C# сделали обратное.

Задача в том что нужен синтаксис вызова методов определенной структуры:
PHP код:
[size=2][font=Consolas]    test1(test22);
[
size=2][font=Consolas]    test1(test2*2+test2/32);[/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 valint exp)
      {
         for (
int i 0expi++) 
         {
           
Console.Write(val);
          }
         return 
1;
      }
      public 
int test2
      
{
           
get
           
{
              
count += 1;
              return 
count;
           }
      }
      private 
void button1_Click(object senderEventArgs e)
      {
         for (var 
05i++)
            { 
                 
test1(test22);
             }
        }
     }

Консоль в этом варианте имеет вид: 1122334455 вместо 12345678910
Привет. Есть такая проблема в этом проекте. Если не решил, то обращайся. Помогу
Honer вне форума  
Ответить с цитированием