【学习笔记 07----C# 基础】教程文章相关的互联网学习教程文章

CLR via C#学习笔记-第七章-字段【代码】

7.2 字段 字段是一种数据成员,其中容纳了一个值类型的实例或者对一个引用类型的引用。 如下表所示,CLR支持类型字段和实例字段。 如果四类型字段,容纳字段数据所需的动态内存是在类型对象中分配的,而类型对象是在类型加载到一个AppDomain时创建的(参见第二十二章)。 那么。什么时候将类型加载到一个AppDomain呢?这通常是在引用了该类型的任何方法首次进行JIT编译的时候。 如果是实例字段。容纳字段数据所需的动态内存是在构造...

CLR via C#学习笔记-第七章-常量【代码】

7.1 常量 常量是值从来不变化的符号。定义常量符号时,他的值必须能在编译时确定。确定后,编译器将常量值保存在程序集元数据中。这意味着只能定义编译器识别的基元类型的常量。 C#中,以下是基元类型,可用于定义常量 Boolean,Char,Byte,Sbyte,Int16,UInt16,Int32,UInt32,Int64,Uint64,Single,Double,Decimal和String。 然而,C#也允许定义非基元类型的常量变量constant variable,嵌套是把值设为null。public sealed...

CLR via C#学习笔记-第六章-分部类、结构和接口

6.5 分部类、结构和接口 本节要讨论分部类、结构和接口。 partial关键字告诉C#编辑器:类、结构或接口的定义源代码可能要分散到一个或多个源代码文件中。 将类型源代码分散到多个文件的原因有三。 1.源代码控制 使用partial关键字可将类型的代码分散到多个源代码文件中, 每个文件都可以单独签出check out,多个程序员可以同时编辑类型。 2.在同一个文件中将类或结构分解成不同的逻辑单元 创建一个类型提供多个功能,使类型能提供...

CLR via C#学习笔记-第六章-类型的可见性【代码】

6.2 类型的可见性 要定义文件范围的类型时,可将类型的可见性指定为public或internal。 public类型不仅对定义程序集中的所有代码可见,还对其他程序集中的代码可见。 internal类型则仅对定义程序集中的所有代码可见,对其他程序集中的代码不可见。 定义类型时不显式指定可见性,C#编译器会帮你指定为internal。//public即可有本程序集也可由其他程序集的代码访问 public class ThisIsAPublicType{} //internal,只可有本程序集的代...

CLR via C#学习笔记-第六章-类型的各种成员【代码】

6.1 类型的各种成员 成员列表 类型中可以定义0个或多个以下种类的成员常量,常量逻辑上总是静态成员。 字段,字段表示只读或可读/可写的数据值。字段应该声明为私有。 实例构造器,是将新对象的实例字段初始化为良好初始状态的特殊方法。 类型构造器,类型构造器是将类型的静态字段初始化为良好初始状态的特殊方法。 方法 操作符重载,操作符重载实际是方法。非公共语言规范的一部分。 转换操作符,定义如何隐式或显式将对象从另一...

CLR via C#学习笔记-第五章-dynamic基元类型【代码】

5.5 dynamic基元类型 dynamic的用途 C#是类型安全的编程语言。意味着所有表达式都解析成类型的实例,编译器生成的代码只执行对该类型有效的操作。 和非类型安全的语言相比,类型安全的优势在于:错误在编译时检测到,执行前是正确的。 但程序许多时候仍需处理一些运行时才会知晓的信息。 虽然可用类型安全和这些信息交互,但语法就会比较笨拙,尤其是在涉及大量字符串处理的时候,性能也会有所损失。 如果写的是纯C#应用程序,只有...

CLR via C#学习笔记-第五章-对象哈希码【代码】

5.4 对象哈希码 为什么要重写GetHashCode FCL的设计者认为,如果能将任何对象的任何实例放到哈希表集合中,能带来很多好处。 为此System.Object提供了虚方法GetHashCode,他能获取任意对象的Int32哈希码。 如果你定义的类型重写了Equals方法,还应重写GetHashCode方法。 事实上,如果类型重写Equals的同时没有重写GetHashCode,微软C#编译器会生成一条警告。 类型定义Equals之所以还要定义GetHashCode, 是由于在System.Collection...

CLR via C#学习笔记-第五章-对象相等性和同一性【代码】

5.3.2 对象相等性和同一性 开发人员经常写代码比较对象。例如,有时要将对象放到集合,写代码对集合中的对象排序、搜索或比较。 本节将讨论相等性和同一性谋害将讨论如何定义正确实现了对象相等性的类型。 System.Object的Equals方法的代码演示 System.Object类型提供了名为Equals的虚方法。作用是在两个对象包含相同值的前提下返回true。 Object的Equals方法是像下面这样实现的。public class Object {public virtual Boolean E...

CLR via C#学习笔记-第五章-使用接口更改已装箱值类型中的字段【代码】

5.3.1 使用接口更改已装箱值类型中的字段(以及为什么不应该这么做) 下面通过一些例子来验证自己对值类型、装箱、拆箱的理解程度。 使用正常方法的代码演示internal struct Point{private Int32 m_x,m_y; public Point(Int32 x,Int32 y){m_x=x;m_y=y;} public void Change(Int32 x,Int32 y){m_x=x;m_y=y;} public override String ToString(){return String.Format("({0},{1})",m_x.ToString(),m_y.ToString());} } publ...

[C#学习笔记1]用csc.exe和记事本写一个C#应用程序【图】

csc.exe是C#的命令行编译器(CSharpCompiler),可以编译C#源程序成可执行程序。它与Visual Studio等IDE(Integrated Development Environment,集成开发环境)的区别是,csc.exe只是将用C#语言编写的源程序文件编译成.exe、.dll等文件,它只是一个编译器,而IDE提供丰富的调试、运行功能,提供很多view视图以及解决方案管理器等文件组织功能。 csc.exe包含在.NET Framework SDK(Software Development Kit)中,除了csc.exe外,SDK还...

[目录]C#学习笔记【图】

C#是微软.NET平台下最重要的编程语言,它与C、C++不同,C#编写的源程序是托管在.NET平台下的。C#源程序经C#编译器编译成中间语言(IL,Intermediate Language),再经CLR(Common Language Runtime,公共语言运行时(库))编译成CPU可执行的指令。学习C#语言,其实就是学习.NET的过程,它们是密不可分的。.NET平台发展至今,除了之前的.NET Framework,又新出现了.NET Core,这里学习.NET Framework。C#语言有很多用途,可以编写.NE...

C#学习笔记1

本次课解决什么事: 基本: (1)如何从键盘接收字符串? Console.ReadLine() (2)如何在屏幕上输出字符串? Console.WriteLine(…) (3)如何得到按指定格式输出的字符串? string.Format(…) 或者 $"…" 高级: (4)如何设计主菜单? (5)如何设置字符的前景色? (6)如何避免代码重复(优化代码)? /////////////////// 【ConsoleApp】Common.cs //////////////////////////// using System;...

C# WPF 基础教程 视频学习笔记(六)【图】

1.元素数据绑定 2.更新元素时间点设置属性 UpdateSourceTrigger="PropertyChanged" 3. 数据绑定时如需双向反应数据变化将数据绑定中的Mode 属性设置为Mode=TwoWay 4.使用代码进行数据元素的绑定5.使用代码进行数据元素的绑定解除 6.如果多个元素共用同一个数据结构的属性可以在其Xaml的父节点中设置DataContext 属性

CLR via C#学习笔记-第四章-类型基础-运行时的相互关系【代码】【图】

4.4 运行时的相互关系 已加载CLR的一个Windows进程,该进程可能有多个线程。线程创建时会分到1MB的栈。栈空间用于向方法传递实参,方法内部定义的局部变量也在栈上。 以下是方法M1和M2的伪代码void M1() {String name="Joe";M2(name);...return; } void M2(String s) {Int32 length=s.Length;Int32 tally;...return; }现在,假定线程执行的代码要调用M1方法。最简单的方法包含序幕(prologue)代码,在方法开始做工作前对其进行初始化...

学习笔记-- C#代码执行过程

1)C#源代码: ——通过CSC编译器 ——exe or dll(MSIL) ——JIT(Just in time ) 即时编译器——机器语言——执行 exe 到执行(CLR)多语言运行环境 2)引用类型 例如:Person P = new Person() P只是对应引用,new才是在内存中创建对象。有几个new 有几个对象