关于C#中 从未对字段***赋值,字段将一直保持其默认0
2013-05-28 19:51
891 查看
对于VS里面提示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/03/36b59f068d8a642eab288dcb226c5ed0.png)
原来的代码如下:
Shape.cs中
Ellipse.cs中
上面的提示是因为字段 _area 是protected的,而且在Area方法中又没有set方法。
要使上面的提示消失,需要在Shape类中声明set方法并在Ellipse类中重写set方法。
代码如下:
这样当对属性Aera赋值的时候,_area字段便会被赋值。这样警告就会消失了。
推荐你看一下张子阳的博客。这里对C#中的各种面向对象的概念讲得很透彻。比如 C#中的委托和事件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/03/36b59f068d8a642eab288dcb226c5ed0.png)
原来的代码如下:
Shape.cs中
abstract class Shape { protected double _area; abstract public double Area { get; } }
Ellipse.cs中
class Ellipse:Shape { public override double Area { get { return Math.PI * _semiMinorAxis * _semiMinorAxis; } }
上面的提示是因为字段 _area 是protected的,而且在Area方法中又没有set方法。
要使上面的提示消失,需要在Shape类中声明set方法并在Ellipse类中重写set方法。
代码如下:
abstract class Shape { protected double _area; abstract public double Area { get; set; } }
public override double Area { get { return Math.PI * _semiMinorAxis * _semiMinorAxis; } set { _area = value; } }
这样当对属性Aera赋值的时候,_area字段便会被赋值。这样警告就会消失了。
推荐你看一下张子阳的博客。这里对C#中的各种面向对象的概念讲得很透彻。比如 C#中的委托和事件
相关文章推荐
- 《CLR Via C# 第3版》笔记之(四) - 类中字段的默认赋值
- c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法
- 关于C#读取MySql数据时,返回DataTable中某字段数据是System.Array[]形式
- 关于easyui中默认给FORM赋值的错误
- 关于C#(ASP.net)存取MySQL LongText字段的心得
- C# 类构造函数赋值里属性与字段赋值注意项
- 关于c#中combobox赋值问题
- 关于C#编程中引用与值类型赋值的一些容易犯错的地方
- C#实现利用反射简化给类字段赋值的方法
- C# 类构造函数赋值里属性与字段赋值注意项
- C#关于如何设置字段号码中间几位特殊符号遮盖的操作方法
- 关于C#(ASP.net)存取MySQL LongText字段的心得[转]
- 【转】C#多线程环境下调用 HttpWebRequest 并发连接限制 HttpClient是否有默认并发数限制? 在.Net 4.0之前,一直是依靠HttpWebRequest实现Htt
- 关于C#(ASP.net)存取MySQL LongText字段的心得
- C#使用OleDb操作excel数据源关于Select字段有空格问题
- c# model默认赋值
- C# office控件开发 如何使word中书签不被删除,且一直保持[]输入状态,非|状态
- 关于C#中readonly的变量赋值问题。
- 关于eclipse中tomcat发布的程序,前台不赋值则默认赋值成0的解决
- 关于hibernate配置中timestamp类型字段插入、更新后自动赋值的配置