继承密封类

Aar*_*her 1 .net oop

假设我有一个电话号码我的类需要验证和跟踪,并且大多数情况下电话号码只是一个字符串,所以在尝试干掉时,只需创建一个Phone类并继承字符串.既然我不能这样做,那么下一个最好的方法是什么?添加一个字符串作为私有成员并重载相等的/ =运算符,以便它可以传递并设置为字符串?

Joh*_*lph 7

更喜欢构成而非继承.

您是否希望您的电话号码可以从字符串中分配?当然不是因为以下是可能的:

Person.PhoneNumber = "FOO"
Run Code Online (Sandbox Code Playgroud)

这样的事情感觉更自然:

Person.PhoneNumber = new PhoneNumber("015-123456");
Run Code Online (Sandbox Code Playgroud)

你可以在构造函数中进行自定义验证,另外决定你希望它是不可变的(好吧,字符串也是不可变的)