C#中一些易混知识的比较
Equals 和==的区别
C#中有两种不同的相等:引用相等和值相等
==是比较两个变量的值是否相同或两个引用是不是指向同一个内存地址。
Equals()方法是比较两个对象指向内存空间里的内容是不是相同。也就是比较两个“引用类型”是否是对同一对象的引用,即两个对象的内容是否相同。
公共变量和属性的区别
变量对于类本身而言,称为域。
属性是类的外部显示出来的特性,只是公开属性,如何进行赋值(set)和如何进行取值(get)都进行了封装,对于类外部是不可见的。对于外部使用者来说只能够使用它,而不能够控制它。如何控制操作是由类本身决定的。
区别:
属性是对字段的封装
属性可以控制读写变量不可以。(set get)
属性可以进行赋值操作,变量不可以。
对一个对象进行数据绑定时,数据是可以正常绑定的,变量就不行。当需要将类中的一个值设为public时,应该是使用属性而不是变量。
一个类,有时候搞不清楚到底用成员变量还是属性。
如:
成员变量
public string Name;
或者用属性
private string name
public string Name
{ get{ return name;} set { name = value; }
}
属性与成员变量类似,它们都提供数据存储,但属性的功能远比成员变量强大。属性由特殊方法(Get 和 Set 访问器)访问。Get 和 Set 访问器允许在设置或检索属性之后验证属性值、执行其他代码或执行其他任务。
例如
成员变量这样写
public readonly string Name;
那还是可以是只读了
private string name;
public string Name
{ get { return name;}
}
面向对象的编程方法是要抽象、封装;在类中,定义的变量是正对类本身而言,我们把它们叫做域。它可以为public ,private等;属性是针对外部看到的类的特性,是类展示给外部使用者的特性。前面我们讲到了域可以为public,但这样把域申明为public将不利于类的封装,因为外部使用者可以对类进行直接修改。所以我们就可以用到属性,我们只是公开它们的属性,至于如何对其进行赋值(set)如何进行取值(get)都已经进行了封装,对于类外部是不可见的。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的。
@符号的妙用
1:字符串转义符
“\”在c#中式特殊符号,表示转义字符,如果表示普通字符串“\”则需要\\才可以,通过@符号,可以将“\”当普通字符使用。
string path="F:\\vs2008\\1.txt" ;string path=@"F:\vs2008\1.txt"; //这个样子就可以了。
2:用@表示跨行字符串
3:保留关键字标示符 在C#规范中,@可以作为标示符(类名,变量名,方法名)的第一个字符,以允许c#中保留关键字作为自己定义的标示符。
如:
public class @class
C#中一些易混知识的比较相关推荐
- 薄冰-英语语法[1]-名词的格 (易混知识)
薄冰-英语语法[1]-名词的格 (易混知识) 格 格是名词或代词具有的形式及其变化,表示与其他词的关系.英语名词的三个格主格,宾格和所有格.英语的名词处所有格形式的变化外,主格和宾格都没有形式变化.名 ...
- 薄冰-英语语法[2]-冠词的知识点 (易混知识)
薄冰-英语语法[2]-冠词的知识点 (易混知识) 冠词 分为不定冠词(a.an)和定冠词(the) 不定冠词 a .an 1. 一般放在单数名词之前,但不强调数目观念 2. a在辅音之前,an在辅音之 ...
- 薄冰-英语语法[3]-动词的基本形式 (易混知识)
薄冰-英语语法[2]-动词的基本形式 (易混知识) 动词的基本形式 动词原形.过去式.过去分词和现在分词 动词过去式和过去分词的规则变形+ed 在动词后加-ed 以-e结果的动词加-d 以辅音字母+y ...
- PMP第五版考试易混知识统计
虽然目前是第六版,但是18年属于平滑过渡阶段,大部分知识点第五版还是适用的. 1.产品导向过程和项目管理过程有何差异呢? 产品导向过程就是项目所产生的产品的实现过程,不同产品有着不同的实现过程,一定程 ...
- java中的易混问题收集
第一,final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 a ...
- 软考倒计时7天:题目书中的易混点
1. 2. 3. 4. 5. 6. 7. 8. 9. 自己的话理解:1.逾期交付:按照价格低的执行2.逾期提取或付款的,按照价格高的来执行. 10. 11. 12. 13. 14. 15. 功能性:一 ...
- 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...
目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...
- 【C#小知识】C#中一些易混淆概念总结(七)---------解析抽象类,抽象方法
目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字 ...
- 像个字段相减绝对值_【高考数学】33个知识点+66个易混点大整合
乐学数韵(ID/抖音:Vlxsy8 视频号/B站:乐学数韵) 教研.解题.资源 Q群: 314559613 ,1078982440 (2群) 相关链接: 数学干 ...
最新文章
- HDU 2519 新生晚会【求组合数】
- 超越RMI,高效Java remote调用
- 在局域网访问_局域网访问共享文件需要密码怎么办?取消访问密码的方法
- Java架构师必备框架技能核心笔记,附相关架构及资料
- J2ME结构与相关规范介绍
- ios 团购信息客户端demo(一)
- 基本数据类型-列表_元组_字典
- FxFactory pro for mac(视觉特效插件包)含破解码教程
- python实现计算器功能、输入加减乘除、不是就跳出_使用Python实现计算器功能
- win7 64位官方旗舰版上搭建ruby on rails的步骤
- 【SPARC】SPARC简介
- WPS表格转换成Excel用什么方法
- APR协议及RARP协议
- C#根据当前时间获取周,月,季度,年度等时间段的起止时间
- 为什么非全站升级HTTPS不可? 1
- 剑指offer-----两个队列实现一个栈(C++实现)
- 人生何处不相逢谐音歌词
- 漂亮的PPT模板:三步搞定年终报告
- 机器人图形变变变_《图形变变变》中班教案
- 消息队列RabbitMQ