Jas*_*son 0 vb.net asp.net constants
也许我应该把它变成一个公共成员,但我一直认为它应该是一个常数.
情景
我有表格我正在渲染成PDF(使用iTextSharp).在代码中,表单本身都继承了一个基类(OrderForm).在内部OrderForm,有一个常量列表,我在用于对齐PDF渲染的东西时用于测量,例如LEFT_MARGIN,等等.这些常量用于几个函数中以确定事物的去向.
所有表格几乎相同,因为它们由相同的组件(标题,地址框,项目等)组成.但是,表格的布局略有不同......在一种形式上,地址框距离右侧一英寸(适合我雇主使用的信封窗口).
问题
而不是创建常数的转换对于每个保证金,填充等等等等用于基础类中的每个的形式,例如:PURCHASE_ORDER_LEFT_MARGIN,INVOICE_LEFT_MARGIN等,它不会是最好创建可重写的LEFT_MARGIN,可以在"inheritee"中设置[原文对象?我的理由是它是一个常量,不会在该对象内发生变化,只能形成形式,但基类中的渲染将保持相对于常量的任何形式.
我知道我可以简单地创建一个公共成员并设置其价值,但我想知道正确的方法来解决这个问题.
谢谢.
改为使用Readonly 属性,然后您可以随时随地选择覆盖它.
一个简单的例子......
Class BaseClass
' Assume this field is set with a value from somewhere else'
Private _leftmargin As Integer
Overridable Readonly Property LEFT_MARGIN As Integer
Get
Return _leftmargin
End Get
End Property
End Class
Class DerivedClass1
Inherits BaseClass
Overrides Readonly Property LEFT_MARGIN As Integer
Get
Return 5 'specialized case for this class'
End Get
End Property
End Class
Class DerivedClass2
Inherits BaseClass
'uses base class LEFT_MARGIN'
End Class
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |