ReadOnly vs大会问题/难题中的财产

时间:2008-12-18 17:18:47

标签: .net assemblies properties internal

如何为使用DLL的人在程序集(DLL)之外创建一个属性“ReadOnly”,但是仍然能够从程序集中填充该属性以供他们阅读?

例如,如果我有一个事务对象需要填充文档对象中的属性(该对象是事务的子类 class)当事务对象中发生某些事情时,我只是想开发人员使用我的DLL只能读取该属性而不是更改它(它应该只在DLL中更改)本身)。

4 个答案:

答案 0 :(得分:7)

C#

public object MyProp {
   get { return val; }
   internal set { val = value; }
}

VB

Public Property MyProp As Object
   Get
      Return StoredVal
   End Get
   Friend Set(ByVal value As Object) 
      StoredVal = value
   End Set
End Property

答案 1 :(得分:6)

如果您使用的是C#,则可以在getset上使用不同的访问修饰符,例如以下应该达到你想要的目的:

public int MyProp { get; internal set; }

VB.NET也具有此功能:http://weblogs.asp.net/pwilson/archive/2003/10/28/34333.aspx

答案 2 :(得分:3)

C#

public bool MyProp {get; internal set;} //Uses "Automatic Property" sytax

VB

private _MyProp as Boolean
Public Property MyProp as Boolean
   Get
      Return True
   End Get
   Friend Set(ByVal value as Boolean)
      _MyProp = value
   End Set
End Property

答案 3 :(得分:1)

用什么语言?在VB中,您将setter标记为Friend,在C#中使用internal。