1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

.NET 3 и WPF - новая эра интерфейсов?

Тема в разделе "Программирование", создана пользователем DirectX, 05.08.07.

  1. AlTk

    AlTk Читатель

    10.692
    0
    HorstWessel,
    1. если я добавлю метод к классу, надо ли мне будет перекомпилировать приложение?
    2. могу ли я в процессе исполнения программы изменить реализацию метода родительского класса?
    3. является ли класс объектом?
     
  2. HorstWessel

    HorstWessel Активный участник

    1.585
    0
    1. нет.
    2. не совсем однозный вопрос... изменить реализацию означает загрузить во время выполнения другую реализацию или во время выполнения сгенерить програмнный код, откомпилировать и загрузить? хотя возможны оба варианта. ответ да.
    3. да. методы и данные могут быть доступны по ссылке на класс, то есть что бы к ним добраться не нужно создавать экземпляр.
     
  3. AlTk

    AlTk Читатель

    10.692
    0
    HorstWessel, это как, разве java поддерживает динамическую типизацию?
     
  4. HorstWessel

    HorstWessel Активный участник

    1.585
    0
    AlTk,
    Java вообще по своей природе динамическая... в Java это назывют reflection. Но этот раздел предназанчен для реализации API, прикладные программисты не должы увлекаться этим инструментом. Прикладники впрыскивают реализации несколько иным способом - более декларативным.
     
  5. Гость

    Гость Гость

    В .Net тоже есть reflection:

    Assembly SampleAssembly;
    SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
    // Obtain a reference to a method known to exist in assembly.
    MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
    // Obtain a reference to the parameters collection of the MethodInfo instance.
    ParameterInfo[] Params = Method.GetParameters();
    // Display information about method parameters.
    // Param = sParam1
    // Type = System.String
    // Position = 0
    // Optional=False
    foreach (ParameterInfo Param in Params)
    {
    Console.WriteLine("Param=" + Param.Name.ToString());
    Console.WriteLine(" Type=" + Param.ParameterType.ToString());
    Console.WriteLine(" Position=" + Param.Position.ToString());
    Console.WriteLine(" Optional=" + Param.IsOptional.ToString());
    }

    то же самое с перебором в foreach классов, методов, свойств и т.д.