首页 / C# / c#-仅允许从特定的类/实例设置属性
c#-仅允许从特定的类/实例设置属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-仅允许从特定的类/实例设置属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1406字,纯文字阅读大概需要3分钟。
内容图文
![c#-仅允许从特定的类/实例设置属性](/upload/InfoBanner/zyjiaocheng/652/b676a22d731542c4b7c180d0b86cf4dd.jpg)
想象一下,我有两个类A和B,其中B具有属性BProperty1和BProperty2.
>属性BProperty1只能由A类设置(无论哪种情况)
>属性BProperty2只能由类A的具体实例设置(对此实例的引用可以例如存储在BProperty1上).
是否有可能实现这样的目标,是否可能有一种模式?请注意,A和B是独立的,它们都不是彼此衍生的!我正在使用C#和WPF.感谢您的提示!
编辑
一个例子:
想象一下,一辆汽车和一辆车门.每当将CarDoor添加到Car时,都会将CarDoors属性AssociatedCar设置为其分配给的Car,因为稍后需要此引用.但是,如何确保AssociatedCar属性不是由用户设置的,而是由调用AddCarDoor(door)的Car类设置的?
class Car
{
private List<CarDoor> _carDoors = new List<CarDoor>();
public Car()
{
}
public void AddCarDoor(CarDoor door)
{
// Add the door to the car
_carDoors.Add(door);
// Save a reference to the car assigned to the door
door.AssociatedCar = this;
}
}
class CarDoor
{
public Car AssociatedCar;
public CarDoor()
{
}
}
解决方法:
您可以锁定设置器,然后将解锁对象所需的对象设为A类私有.
编辑:看完您的编辑后,我建议您将车门作为class car的成员,以了解汽车是如何由x个门组成的.也许是车门的集合.将该成员变量设为私有.这样,轿厢类别之外的任何内容都将无法编辑轿厢门的属性.
Edit2:同样,在轿厢和轿厢门之间建立双向关联(即,轿厢门具有关联的轿厢,而轿厢具有关联的轿厢门)有点多余.我不明白您为什么需要它-只需为车门设置一个public get属性,以便您可以在车类之外使用该数据.
例…
Class Car
{
private List<CarDoor> carDoors;
Car()
{
this.carDoors = new List<CarDoor>();
}
public List<CarDoor> getCarDoors
{
return this.carDoors;
}
}
内容总结
以上是互联网集市为您收集整理的c#-仅允许从特定的类/实例设置属性全部内容,希望文章能够帮你解决c#-仅允许从特定的类/实例设置属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。