如何在c#中访问另一个类中的类的私有函数?

Sri*_*ama 4 c# private class function access-specifier

我是c#编程的新手,我知道类的公共数据成员可以从另一个类访问.有什么方法可以从另一个类访问私有函数?

这就是我试过的.请帮助我.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication7
{
    class Program
    {
        private class Myclass
        {
            private int Add(int num1, int num2)
            {
                return num1 + num2;
            }
        }
        static void Main(string[] args)
        {
            Myclass aObj = new Myclass();
            //is there any way i can access private function
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Cha*_*mar 7

您好,您可以使用反射来获取类的任何组件.

这是一个演示.试试吧

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace ExposePrivateVariablesUsingReflection
{
    class Program
    {
        private class MyPrivateClass
        {
            private string MyPrivateFunc(string message)
            {
                return message + "Yes";
            }
        }

        static void Main(string[] args)
        {
            var mpc = new MyPrivateClass();
            Type type = mpc.GetType();

            var output = (string)type.InvokeMember("MyPrivateFunc",
                                    BindingFlags.Instance | BindingFlags.InvokeMethod |
                                    BindingFlags.NonPublic, null, mpc,
                                    new object[] {"Is Exposed private Member ? "});

            Console.WriteLine("Output : " + output);
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


O. *_*per 7

除了使用反射,你不能.事实上,成员private完全是这样的,不能从课堂外访问.