结构体中的只写属性规范:
 只写属性只能有set 语句
 任何读操作都是错误的

结构体中的只写属性代码样式:
struct Time
{
...
public int Hour
{
set {
if (value < 0 || value > 24)
throw new OutOfRangeException("Hour");
hour = value;
}
}
private int hour, minute, second;
}
Time lunch = new Time();
...
Console.WriteLine(lunch.Hour); //错误
...
lunch.Hour += 12;//错误

结构体中的只写属性注意:
一个属性可以不必同时声明get语句和set语句。你可以只声明一个set语句。在这种情况下,属性是只写的,任何读的操作都会导致错误。例如,下面的语句就会导致一个错误:
Console.WriteLine(lunch.Hour);
因为Hour是只写属性。
而下面的例子则看上去好像是对的:
lunch.Hour += 2;
这句语句的实际运作是这样的:
lunch.Hour = lunch.Hour + 2;
它执行了读的操作,因此是错误的。因此,像+=这种复合型的赋值操作符既不能用于只读属性,也不能用于只写属性。

转载于:https://blog.51cto.com/5257890/928702

C#结构体中的只写属性相关推荐

  1. C语言(CED)如何用sort函数根据结构体里的某一属性进行排序

    (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 前几天在编写代码的时候,突然要根据结构体的属性进行从小到 ...

  2. golang获取结构体中的tag_26. Go 语言中结构体的 Tag 用法

    大家好,我是明哥. 由于某些不可抗力,之前该专栏的所有内容都被删除了.因此之后的一段时间内,我会重新发布这些文章,先给已经看过的关注者提个醒. 本文原文:http://golang.iswbm.com ...

  3. C# 8: 可变结构体中的只读实例成员

    在之前的文章中我们介绍了 C# 中的 只读结构体(readonly struct)[1] 和与其紧密相关的 in 参数[2]. 今天我们来讨论一下从 C# 8 开始引入的一个特性:可变结构体中的只读实 ...

  4. C语言:结构体中一级指针和二级指针的创建与释放示例

    http://blog.csdn.net/Bixiwen_liu/article/details/53610952 这几天把C语言巩固了一下,作为一门最基本的编程语言,C语言还是相当基础和非常重要的, ...

  5. c++ 结构体中不同类型的初始值_Golang语言基础教程:结构体

    1.1 什么是结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型.结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 1.2 结构体的定义和初始化 ...

  6. C语言中的结构体,结构体中数组初始化与赋值

    最近写c语言中的结构体遇到了些问题,从网上找了些资料如下: 结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论: 1.结构体的 ...

  7. 用结构体指针访问结构体中的结构体指针(结构体指针的嵌套)

    结构体中的结构体指针是使用 一.问题背景 二.代码 三.说明 一.问题背景   日常工作中没有编程的机会,所以只看得懂代码,现在需要重新写一段代码,实现固定格式存储数据,需要使用到结构体和结构体指针. ...

  8. c语言给结构体指针申请空间,结构体中的指针变量申请空间问题

    本人声明了一个结构体包含id,age,name三个属性 struct studentInfo { int id; int age; char *name[20]; }; 本人又创建了一个双向循环链表, ...

  9. C语言结构体中定义函数指针详解

    C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...

  10. c语言 结构体 占位符,深入理解结构体中占位符的用法

    深入理解结构体中占位符的用法 复制代码 代码如下: typedef union { struct x{ char a1 : 2; char b1 : 3; char c1 : 3; }x1; char ...

最新文章

  1. 在WPF中使用WinForm控件方法
  2. ansible-playbook如何判断并中断执行
  3. R中rJava包载入时报错的问题
  4. jsp中两个字符串格式的日期可以相减吗_举个栗子!Tableau 技巧(126):学几个常用的日期函数...
  5. centos8 安装docker_CentOS 8 安装 docker
  6. 再论PID,PID其实很简单。。。
  7. 404、500、502等HTTP状态码介绍
  8. rgbdslam_v2编译过程中引起的needed by错误
  9. android 卡片收缩展开,jQuery和CSS3炫酷堆叠卡片展开和收缩特效
  10. 自底向上和自顶向下的区别
  11. python语言是不是多模型语言_Python模型转换为Modelica模型的方法与流程
  12. 计算机网络ping所有用法,电脑Ping命令的使用大全
  13. 【C语言】练习3-8 查询水果价格
  14. 刚刚,我们和ChatGPT聊了聊边缘计算
  15. V语言(Vlang) 操作mysql数据库返回map数组
  16. 如何快速把旧电脑数据转移到新电脑?
  17. 对面工位小老弟,你做的测试我服气!
  18. hdoj 开门人和关门人
  19. 世界观和方法论——青山行客
  20. 考研最辛苦、最努力的一批人,喊累之前先看看他们……

热门文章

  1. CIO:节省IT部门开支十招
  2. Mac上自带的语音功能怎么用?让你的mac读给你听
  3. 如何正确添加水印保护自己的版权?
  4. 如何利用FL Studio进行听湿录干的声音录制
  5. 实时计算在有赞的实践-效率提升之路
  6. Docker 容器十诫
  7. 《Linux》美轮美奂的Arch, 详解Arch虚拟机安装
  8. 巨杉数据库入选Gartner数据库报告,中国首家入选厂商
  9. asp.mvc 基本知识
  10. 点滴积累【JS】---JS小功能(JS实现模仿微博发布效果)