c# - C#更改嵌套类的方法修饰符
问题描述
我想知道这是否可能:我有一堂课
class Class
{
private Person person = new Person();
public void NamePerson()
{
person.Name = "Peter";
}
public Person CPerson
{
get
{
return person;
}
}
public class Person
{
public string Name { set; get; }
}
}
在里面Class
我想要完全访问该person
对象。但是具有Person
外部的写访问权限Class
Class a = new Class();
a.CPerson.Name = "Steve"; !!!!!
应该是无效的。我只想拥有读取权限。
string name = a.CPerson.Name;
有没有办法在 C# 中做到这一点???谢谢!
解决方案
您可以为此使用接口:
public interface IPerson
{
string Name { get; }
}
public class Person : IPerson
{
public string Name { get; set; }
}
现在在类内部,您将对象引用为Person
,但只返回一个实例IPerson
:
class Class
{
private Person person = new Person();
public void NamePerson()
{
person.Name = "Peter";
}
public IPerson CPerson
{
get
{
return person;
}
}
}
推荐阅读
- docx4j - 如何以编程方式绑定 Table docx4j 中的中继器?
- javascript - Nuxt、Webpack 和 mysql 包:错误:接收到的数据包顺序错误
- cucumber-jvm - 在 Cucumber-JVM Parallel Plugin 成功创建 Runner 后,似乎 Maven Surefire 正在尝试连接到 TestNG 以运行测试用例
- maven - Java , J2EE , Javax FX , Maven : 找不到基本名称的包 .. 大黑洞?
- travis-ci - 为每个 travis-ci 作业单独的 after_success 命令
- angular - Angular Observable 偶尔会订阅多次
- android - 没有 setOnClickListener 的 TextView 内容大声朗读(自动文本转语音)
- java - 长按不适用于 webview 中的鼠标
- django - zappa 为具有多个图像的 Django 表单提供 413 请求实体太大错误
- python - 如何在 Python 中制作多波图