3

我希望能够访问属性的void set_PropertyName(var value)var get_Property()方法。

有没有什么方法可以做到这一点而无需反思?并且没有得到Compiler Error CS0571.

编辑 没有反射我的意思是没有反射所做的开销(不仅仅是编写代码),因为这是需要运行很多次的代码,我希望它没有反射的开销。不幸的是,动态也使用了反射。

似乎这对于 c++.net 可能是可能的,但对于其他语言则不是(尽管我无法判断,因为我的 C++ 安装已被塞满)。

感谢您的回复。

4

1 回答 1

1

是的,如果您使用Microsoft.VisualBasic 命名空间中可用的callbyname是可能的

前任;

using System;
using Microsoft.VisualBasic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var test = new Test();
            Microsoft.VisualBasic.Interaction.CallByName(test, "property" ,CallType.Set, 1);
            Console.WriteLine(Microsoft.VisualBasic.Interaction.CallByName(test, "property", CallType.Get));
            Console.ReadKey(true);
        }
    }

    public class Test
    {
        public int property { get; set; }
    }
}
于 2013-10-23T00:54:40.240 回答