一周学会C#(属性三)

原创 2004年01月12日 17:12:00

一周学会C#(属性三)

C#才鸟(QQ:249178521

8.    静态属性<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

l      静态属性是和类联系在一起的

Ø       只能通过类名使用

sealed class Error

{

    ...

    public static TextWriter Log

    {  

        get { return log; }

    }

    ...

    private static Stream sink

        = new FileStream("error.log", FileMode.Append);

    private static TextWriter log

        = new StreamWriter(sink);

}

Error.Log.WriteLine("time out");

字段可以是静态的,所以属性也可以是静态的。声明静态属性的语法很简单,只要在属性名前加入static关键字。静态函数中的机制和限制同样适用于静态属性。静态属性可以同一般的属性一样声明为只读或只写。

静态属性没有隐含的this参数。例如,上面的例子中,Log这个静态属性之所以能访问log这个字段,是因为log是一个静态字段。如果log是一个实例字段,那么Log这个静态属性就不能访问它。例如:

       public sealed class Error

    {

       public static TextWriter Log

       {

           get { return log; }

       }

       private Stream sink = ...;

       private TextWriter log = ...;

    }

9.    属性vs.字段

l      属性和字段的比较:

Ø       属性不能使用ref/out 型参数

Ø       属性使用前必须赋值

//属性

struct Time

{

    ...

    public int Hour

    {  

        set { ... }

    }

    private int hour;

}

Time lunch;

Method(out lunch.Hour); //错误

lunch.Hour = 12;//错误

 

//字段

struct Time

{

    ...

    public int Hour;

    ...

}

Time lunch;

Method(out lunch.Hour); //正确

lunch.Hour = 12;

属性使用前必须赋值,例如:

              Time lunch;

       lunch.Hour = 12;//错误,lunch没有初始化

10.    属性vs.函数

l       相似点

Ø       都包含执行代码

Ø       都可以有访问修饰符

Ø       都可以有virtual, abstract, override 修饰符

Ø       都可以用在接口中

l       不同点

Ø       属性只能拥有get/set 语句

Ø       属性不可以是void

Ø       属性不能使用参数

Ø       属性不能使用[ ] 参数

Ø       属性不能使用括号

一周学会Linux

什么是Linux 大部分人在日常使用中没有用过Linux,导致在一些人眼中觉得Linux很神秘,会Linux编程好牛逼,心中不由自主腾起一股敬仰之情~其实它没那么神秘,只是一个操作系统,和window...
  • everl_1
  • everl_1
  • 2016年08月30日 19:19
  • 195

一周学会Linux实战

为什么学习Linux? 1、Linux的性能卓越。 Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用Linux。很多软...
  • ahuang1900
  • ahuang1900
  • 2014年07月26日 01:39
  • 579

C#根据当前时间获取本周、本月、本季度等时间段

根据当前时间获取本周、本月、本季度等时间段
  • Han_MoMo
  • Han_MoMo
  • 2015年01月15日 08:38
  • 1629

SQLServer查询最近一天,三天,一周,一月,一季度方法

SQL Server DATEPART() 函数 三天 select * from T_news where datediff(day,addtime,getdate())= 0 一周...
  • JR_Way
  • JR_Way
  • 2016年04月28日 16:57
  • 2704

一周学会Linux

为什么学习Linux? 1、Linux的性能卓越。 Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用Linux。很多软件公...
  • wangyuhang_521
  • wangyuhang_521
  • 2013年11月05日 11:24
  • 925

一周学会Linux实战

linux
  • zhangxiong0797
  • zhangxiong0797
  • 2014年10月29日 00:06
  • 571

C#如何获取指定周的日期范围

1. 不允许跨年   1) 第一周的第一天从每年的第一天开始,最后一周的最后一天为每年的最后一天 1 2 3 4 5 6 7 8 9 10 11 12 13 14...
  • push1999
  • push1999
  • 2017年02月14日 10:11
  • 757

java 实现 上一周 本周 下一周 切换时获得 星期一 星期日 时间

// 用来全局控制 上一周,本周,下一周的周数变化    private static int weeks = 0;        // 获得当前日期与本周一相差的天数    private int ...
  • kingkongII
  • kingkongII
  • 2013年08月28日 19:13
  • 729

C#取三个数的最大值、最小值、平均值、中间值

1、 class Program { static void Main(string[] args) { double a = Co...
  • u014424282
  • u014424282
  • 2017年11月02日 17:26
  • 435

深入理解c#的字段与属性

属性属性的作用就是保护字段,对字段的赋值和取值进行限定 属性的本质就是两个方法,一个叫get()对取值进行限定,一个叫set()对存值进行限定,属性只是对属性的再赋值。 如果只有get是只读属性,...
  • zhzz2012
  • zhzz2012
  • 2015年05月19日 10:59
  • 4343
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一周学会C#(属性三)
举报原因:
原因补充:

(最多只允许输入30个字)