Tag: private members

如何使基础架构代码仅在命名空间中可见?

我有一个Shunting-Yard算法的实现,我试图清楚地集成到我们的框架中。 目前我把它全部打包成一个带有简单公共接口的类。 namespace MathematicalParser { public class ExpressionParser { public ExpressionParser(string expression, List variables); public double GetNumericValue(Dictionary variableValues); } } 在这个类中,有很多辅助类,辅助枚举,静态变量等,可以将不同的名称映射到函数。 所有这些都是私有的,因此库的用户无需担心。 为了提高代码的可维护性,我试图将逻辑上不相关的代码分离到他们自己的类中,但这些类在ExpressionParser之外没有任何意义,所以我想限制它们对名称空间MathematicalParser的可见性。 (仅包含ExpressionParser)。 如何在c#中最好地完成此任务,内部关键字仅适用于程序集,而private不能用于名称空间。

C#私有成员可见性

我们的商业模式中有一个学生class。 令我感到奇怪的是,如果我们操纵另一名学生的一名学生,学生的私人成员是可见的……这让我觉得有些不雅:) class Program { static void Main(string[] args) { Student s1 = new Student(); Student s2 = new Student(); s1.ExamineStudentsMembers(s2); } } public class Student { private String _studentsPrivateMember; public Student() { _studentsPrivateMember = DateTime.Now.Ticks.ToString(); } public void ExamineStudentsMembers(Student anotherStudent) { //this seems very wrong Console.WriteLine(anotherStudent._studentsPrivateMember); } } 我可以对设计考虑因素/含义有所了解吗? 您似乎无法隐藏兄弟姐妹的信息。 有没有办法将字段或成员标记为隐藏在同一个类的其他实例中?