ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性)
1.A,示例(Sample) 返回顶部

“属性”示例

本示例演示属性为何是 C# 编程语言必不可少的一个组成部分。它演示了如何声明和使用属性。有关更多信息,请参见属性(C# 编程指南) 。

安全说明

提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例。对于因将此代码示例用于其他用途而出现的偶然或必然的损害,Microsoft 不承担任何责任。

在 Visual Studio 中生成并运行“属性”示例

  1. 在“解决方案资源管理器”中,右击“Person”项目并单击“设为启动项目”。

  2. 在“调试”菜单上,单击“开始执行(不调试)”。

  3. 对 shapetest 重复前面上述步骤。

从命令行生成并运行“属性”示例

  1. 使用“更改目录”命令转到“person”目录。

  2. 键入以下命令:

    1. csc person.cs
    2. person
  3. 使用“更改目录”命令转到“shapetest”目录。

  4. 键入以下命令:

    1. csc abstractshape.cs shapes.cs shapetest.cs
    2. shapetest
1.B,person 示例代码(Sample Code)返回顶部

1.B.1, person.cs

  1. // 版权所有(C) Microsoft Corporation。保留所有权利。
  2. // 此代码的发布遵从
  3. // Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
  4. //
  5. //版权所有(C) Microsoft Corporation。保留所有权利。
  6.  
  7. // person.cs
  8. using System;
  9. class Person
  10. {
  11. private string myName ="N/A";
  12. private int myAge = ;
  13.  
  14. // 声明 string 类型的 Name 属性:
  15. public string Name
  16. {
  17. get
  18. {
  19. return myName;
  20. }
  21. set
  22. {
  23. myName = value;
  24. }
  25. }
  26.  
  27. // 声明 int 类型的 Age 属性:
  28. public int Age
  29. {
  30. get
  31. {
  32. return myAge;
  33. }
  34. set
  35. {
  36. myAge = value;
  37. }
  38. }
  39.  
  40. public override string ToString()
  41. {
  42. return "Name = " + Name + ", Age = " + Age;
  43. }
  44.  
  45. public static void Main()
  46. {
  47. Console.WriteLine("Simple Properties");
  48.  
  49. // 创建新的 Person 对象:
  50. Person person = new Person();
  51.  
  52. // 打印出与该对象关联的姓名和年龄:
  53. Console.WriteLine("Person details - {0}", person);
  54.  
  55. // 设置 Person 对象的某些值:
  56. person.Name = "Joe";
  57. person.Age = ;
  58. Console.WriteLine("Person details - {0}", person);
  59.  
  60. // 递增 Age 属性:
  61. person.Age += ;
  62. Console.WriteLine("Person details - {0}", person);
  63. }
  64. }

1.B.2,

1.B.EXE,

  1. Simple Properties
  2. Person details - Name = N/A, Age =
  3. Person details - Name = Joe, Age =
  4. Person details - Name = Joe, Age =
  5. 请按任意键继续. . .

1.B

1.B,shapetest 示例代码2(Sample Code)返回顶部

1.B.1, abstractshape.cs

  1. // 版权所有(C) Microsoft Corporation。保留所有权利。
  2. // 此代码的发布遵从
  3. // Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
  4. //
  5. //版权所有(C) Microsoft Corporation。保留所有权利。
  6.  
  7. // abstractshape.cs
  8. // 编译时使用:/target:library
  9. // csc /target:library abstractshape.cs
  10. using System;
  11.  
  12. public abstract class Shape
  13. {
  14. private string myId;
  15.  
  16. public Shape(string s)
  17. {
  18. Id = s; // 调用 Id 属性的 set 访问器
  19. }
  20.  
  21. public string Id
  22. {
  23. get
  24. {
  25. return myId;
  26. }
  27.  
  28. set
  29. {
  30. myId = value;
  31. }
  32. }
  33.  
  34. // Area 为只读属性 - 只需要 get 访问器:
  35. public abstract double Area
  36. {
  37. get;
  38. }
  39.  
  40. public override string ToString()
  41. {
  42. return Id + " Area = " + string.Format("{0:F2}",Area);
  43. }
  44. }

1.B.2, shapes.cs

  1. // 版权所有(C) Microsoft Corporation。保留所有权利。
  2. // 此代码的发布遵从
  3. // Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
  4. //
  5. //版权所有(C) Microsoft Corporation。保留所有权利。
  6.  
  7. // shapes.cs
  8. // 编译时使用:/target:library /reference:abstractshape.dll
  9. public class Square : Shape
  10. {
  11. private int mySide;
  12.  
  13. public Square(int side, string id) : base(id)
  14. {
  15. mySide = side;
  16. }
  17.  
  18. public override double Area
  19. {
  20. get
  21. {
  22. // 已知边长,返回正方形的面积:
  23. return mySide * mySide;
  24. }
  25. }
  26. }
  27.  
  28. public class Circle : Shape
  29. {
  30. private int myRadius;
  31.  
  32. public Circle(int radius, string id) : base(id)
  33. {
  34. myRadius = radius;
  35. }
  36.  
  37. public override double Area
  38. {
  39. get
  40. {
  41. // 已知半径,返回圆的面积:
  42. return myRadius * myRadius * System.Math.PI;
  43. }
  44. }
  45. }
  46.  
  47. public class Rectangle : Shape
  48. {
  49. private int myWidth;
  50. private int myHeight;
  51.  
  52. public Rectangle(int width, int height, string id) : base(id)
  53. {
  54. myWidth = width;
  55. myHeight = height;
  56. }
  57.  
  58. public override double Area
  59. {
  60. get
  61. {
  62. // 已知宽度和高度,返回矩形的面积:
  63. return myWidth * myHeight;
  64. }
  65. }
  66. }

1.B.3, shaptest.cs

  1. // 版权所有(C) Microsoft Corporation。保留所有权利。
  2. // 此代码的发布遵从
  3. // Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
  4. //
  5. //版权所有(C) Microsoft Corporation。保留所有权利。
  6.  
  7. // shapetest.cs
  8. // 编译时使用:/reference:abstractshape.dll;shapes.dll
  9. public class TestClass
  10. {
  11. public static void Main()
  12. {
  13. Shape[] shapes =
  14. {
  15. new Square(, "Square #1"),
  16. new Circle(, "Circle #1"),
  17. new Rectangle( , , "Rectangle #1")
  18. };
  19.  
  20. System.Console.WriteLine("Shapes Collection");
  21. foreach(Shape s in shapes)
  22. {
  23. System.Console.WriteLine(s);
  24. }
  25.  
  26. }
  27. }

1.B.EXE,

  1. Shapes Collection
  2. Square # Area = 25.00
  3. Circle # Area = 28.27
  4. Rectangle # Area = 20.00
  5. 请按任意键继续. . .

1.B,

1.C,下载地址(Free Download)返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

ylbtech-LanguageSamples-Porperties(属性)的更多相关文章

  1. c3p0连接数据库的3种方式

    c3p0连接数据库的3种方式,这里以mysql为例 1. 直接用set方法设置参数, 基本方法 ComboPooledDataSource dataSource = new ComboPooledDa ...

  2. java:POI导出excel

    POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 <dependency> < ...

  3. excel poi 文件导出,支持多sheet、多列自动合并。

    参考博客: http://www.oschina.net/code/snippet_565430_15074 增加了多sheet,多列的自动合并. 修改了部分过时方法和导出逻辑. 优化了标题,导出信息 ...

  4. jqu

    1 /*2 * 说明:3 * 本源代码的中文注释乃Auscarlin呕心沥血所作.旨在促进jQuery的传播以及向广大jQuery爱好者提供一个进阶4 *的途径,以让各位更加深入地了解jQuery,学 ...

  5. Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项

    本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblo ...

  6. Vue.js:监听属性

    ylbtech-Vue.js:监听属性 1.返回顶部 1. Vue.js 监听属性 本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化: 实例 & ...

  7. Vue.js:计算属性

    ylbtech-Vue.js:计算属性 1.返回顶部 1. Vue.js 计算属性 计算属性关键词: computed. 计算属性在处理一些复杂逻辑时是很有用的. 可以看下以下反转字符串的例子: 实例 ...

  8. 杂项:C# 方法、属性杂项-01

    ylbtech-杂项:C# 方法.属性杂项-01 1. 属性杂项返回顶部 1. public int ReadCnt { get; set; } 2.设置默认值 public int ReadCnt ...

  9. CSS:CSS cursor 属性

    ylbtech-CSS:CSS cursor 属性 1.返回顶部 1. 实例 一些不同的光标: span.crosshair {cursor:crosshair;} span.help {cursor ...

随机推荐

  1. socket实现udp与tcp通信-java

    1.简单介绍Socket Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字. 通信的两端都有Socket. 网络通信其实就是Socket间的通信. 数 ...

  2. HDU-4255

    A Famous Grid Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. telent

    telnet    ip  空格 port ctrl+]  进入 命令后 quit 退出 在linux/unix下使用telnet hostname port连接上主机后会提示Escape chara ...

  4. 辨析各类web服务器:Apache/Tomcat/Jboss/Nginx/等,还有Nodejs

    先说一下各类服务器能干啥,特点是啥,然后在区分他们的类别. (1)Apache: Apache是指Apache软件基金会的Apache HTTP Server, 它能够接收http请求,然后返回各类资 ...

  5. 讲IOC非常好的一篇文章--初步弄懂DI

    http://jinnianshilongnian.iteye.com/blog/1413846 http://jinnianshilongnian.iteye.com/blog/pdf 之后又看了类 ...

  6. 怎么WordPress增加在线投稿功能

    现在很多个人博客为了增加博客的内容,都会提供投稿通道,大部分都是以邮箱的形式进行投稿,不过这样一来,也很费人力,要拷贝复制,然后编辑等.如果给博客加个在线投稿功能,那就方便多了.稍微审核下文章内容就可 ...

  7. 谈谈对final的理解

    1.final修饰类 类不能被继承,类中的所有方法都是final的 2.final修饰方法 方法不能被覆盖,private修饰的方法隐性的添加了final 3.final修饰方法内参数 方法内的参数不 ...

  8. React Native学习

    学习 首先,假使你已经安装了Nodejs 6,也有使用npm进行Nodejs的包管理 npm install -g react-native-cli 也可以使用yarn作为包管理工具 npm inst ...

  9. [lampp] 不能通过互联网连接数据库 MySQL is not accessable via network

    LAMPP安装目录下的/etc/my.cnf文件注释掉skip-networking #skip-networking#skip-networking

  10. 戴尔笔记本Inspiron 7560(灵越) 加装固态硬盘从选购固态硬盘到系统迁移到设置SSD为第一启动(受不了了,网上的教程就没有完整的)

    菜鸡我的笔记本为戴尔灵越Inpsiron 7560,其实Inspiron 15 7560 和Inspiron 7560是同一个型号. 电脑拆了安过内存条,换过电池,现在又加了一块固态硬盘. 因为不想安 ...