C#高级编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#高级编程相关的知识,希望对你有一定的参考价值。

ch 3 对象与类型

类和结构

相同:1.都是创建对象的模板;2.每个对象都包含数据,并提供了处理和访问数据的方法;

区别:在内存中的存储方式、访问方式:类存储在堆栈(heap)上的引用类型;结构存储在栈(stack)上的值类型,且结构不支持继承;

包含:数据成员(字段、常量、事件、函数成员(方法、属性、构造函数、终结器(finalizer)、运算符、索引器)

方法:

给方法传递参数:引用传递、值传递;(参数传递给方法前任何变量都必须初始化)

引用传递:被调用方法得到的就是这个变量,即内存中变量的指针->在方法内部对变量进行任何改变在方法退出后仍旧有效;

值传递:被调用的方法得到的是变量的一个相同的副本->方法退出后对变量的修改会丢失;

说明:在C#中,一般引用类型通过引用传递,值类型通过值传递;引用类型变量只包含对象的引用,作为参数传递时,传递的正是该对象的引用,在方法内对对象的修改会保留下来;值类型变量包含实际数据,传递给方法的是数据本身的副本。(字符串行为特殊,不同于一般的引用类型)

比较:对于复杂类型引用传递效率更高(值传递时,必须的复制大量数据)。

ref:将值类型通过引用传递给方法;

out:简化输入参数的初始化,C#通过Out关键字对变量进行初始化;

命名参数:(一般参数按顺序传递给方法)允许按任意顺序传递,eg:声明:void Func(string str_pa,int int_pa){//....} 调用 :Func(int_Pa1:124,str_Pa2:"MyStringParameter");

可选参数:必须为参数提供默认值,且可选参数必须为方法最后定义的参数

方法重载:方法名相同,但参数个数或者类型不同,与返回值无关,与ref,out无关;

属性(Property)

 

以上是关于C#高级编程的主要内容,如果未能解决你的问题,请参考以下文章

读《C#高级编程》第1章

《C#高级编程》读书笔记(二十):核心XAML

读书笔记C#高级编程 第四章 继承

C#高级编程笔记 Day 5, 9月 13日 (泛型)

《C#高级编程》读书笔记

C#高级编程(第10版) 高清中文版