Wie der Zugriff auf die private Funktion einer Klasse in einer anderen Klasse in c#?
Ich bin neu in c# zu Programmieren, und ich weiß, öffentlichen Datenmember der Klasse zugegriffen werden kann von einer anderen Klasse.Gibt es eine Möglichkeit, ich kann auf die private-Funktion aus einer anderen Klasse?
Dies ist, was ich versucht habe.bitte helfen Sie mir.
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
}
}
}
Warum kann man nicht machen es zu einem
Machen Sie es
Warum!!!!!! was ist dein problem?
Warum würden Sie wollen, um den Zugriff auf eine private Methode? Was ist es, dass Sie versuchen zu erreichen, genau?
Klar Srividhya zusammengebraut hat ein triviales Beispiel, um sicherzustellen, dass seine Frage verstanden werden kann. Man geht davon aus, dass er keine Lust hat tatsächlich auszuführen Add(1, 2), weil dann 1 + 2 würde wahrscheinlich funktionieren.
public
Funktion?Machen Sie es
public
.Warum!!!!!! was ist dein problem?
Warum würden Sie wollen, um den Zugriff auf eine private Methode? Was ist es, dass Sie versuchen zu erreichen, genau?
Klar Srividhya zusammengebraut hat ein triviales Beispiel, um sicherzustellen, dass seine Frage verstanden werden kann. Man geht davon aus, dass er keine Lust hat tatsächlich auszuführen Add(1, 2), weil dann 1 + 2 würde wahrscheinlich funktionieren.
InformationsquelleAutor SrividhyaShama | 2013-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hi kannst du reflektion verwenden, um jede Komponente einer Klasse.
hier ist eine demo. Versuchen Sie es
Es ist bekannt als Reflexion.
InformationsquelleAutor Chandan Kumar
Andere als mit Reflexion, können Sie nicht. Als eine Angelegenheit von der Tat, die Mitglieder sind aus
private
genau so Sie nicht Zugriff von außerhalb der Klasse.Wahrscheinlich für die etwas seltsame Sprache, "als eine Angelegenheit von der Tat".
InformationsquelleAutor O. R. Mapper
Was ich sehe in deinem code, ich denke, was Sie wollen, ist eine Barrierefreie
Add
Funktion.Wenn es das ist, was Sie wollen, brauchen Sie nicht die Klasse haben, legen Sie einfach Ihre
Add
Funktion in IhremProgram
Klasse und machen esstatic
.Wenn Sie wirklich brauchen, Ihre Klasse, dann sollten Sie sich die Frage stellen: ist die Funktion, die ich schreiben entworfen werden, zugänglich außerhalb der Klasse, oder es sollte nur aufgerufen werden, innerhalb meiner Klasse.
Wenn die Antwort auf die 1. Frage mit ja, dann machen Sie es öffentlich.
Dies ist ein design-problem, so sollten Sie sich auf diese zu konzentrieren.
Selbst wenn Sie darauf zugreifen können, mithilfe von reflektion, es gibt sehr sehr wenige Fälle, wenn es eine gute Sache zu tun. Reflexion ist der Letzte Ausweg, wenn Sie können es auf andere Weise tun, sollten Sie in die andere Richtung.
InformationsquelleAutor ppetrov
Könnte man per Reflection, aber warum sollte man das tun wollen?
InformationsquelleAutor user3104183