【C# Programming】C#第一课(自己学习的笔记)

这篇具有很好参考价值的文章主要介绍了【C# Programming】C#第一课(自己学习的笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、C# 介绍

1.1 托管代码(Manage Code ) :

1.2 基础类型库 (Base Class Library):

1.3 程序集(Assembly):

1.4 .NET 框架:

1.5 公共中间语言(Common Intermediate Language),简称 IL。

1.6 C#编译器将源代码编译成CIL,从而生成程序集。

1.7 公共语言运行时 (Common Language Runtime ),简称 CLR。

1.8 所有依赖.NET框架的应用程序都需要CLR,CLR 实现如下功能:

1.9 .NET框架:

1.10 .NET FRAMEWORK 4.8:  

二、Hello World

三、基本类型

3.1 整数类型

3.1.1 整数数据

3.1.2 在指定数据类型时使用C#关键字而不是BCL名称。 

3.2 浮点类型

3.2.1 浮点类型 

3.2.2 与浮点数不同,decimal类型保证范围内的所有十进制数都是精确的。例如,0.1M 就是精确值,而不是一个近似值。

3.3 字面量

3.3.1 字面量(Literal value) :源代码中的常量值

 3.3.2 默认情况下,输入带小数点的字面量,编译器会自动把它解释为double 类型,整数值通常默认为int,如果值太大,编译器将把它解释为long,例如:

3.3.3 整数字面量解析

3.4 布尔及字符类型

3.4.1 布尔类型

3.4.2 字符类型

3.4.3 字符类型的字面两是用单引号括起来的,如:’A’

3.4.4 可以使用4位十六进制的Unicode值 、带有强制类型转换的整数值、或十六进制表示他们

3.4.5 字符类型:转义字符

 3.4.6 字符串类型

3.5 字符串字面量

3.5.1 字符串字面量必须放在双引号(“)中, 可以包含Unicode 和转义字符。

3.5.2 在C#中,可以在字符串前使用@符号,指明转义序列不被处理,结果是一个逐字字符串字面量,它不仅能将反斜杠当作普通字符处理, 也能逐字解释所有空白字符。 例如:

3.6 字符串插值

3.6.1 字符串插值使得字符串可以支持嵌入表达式。字符串插值语法在一个字符串字面量前面加上一个$符号前缀,然后将表达式嵌入大括号中, 例如:

3.6.2 字符串字面量也可以在”@”符号前面加上”$”符号的字符串插值而成,例如:

3.6.3 string 类常用静态方法

3.6.4 字符串的不可变性

四、其它介绍

4.1 using 和 using static 指令

4.1.1 using 指令有以下种用途

4.1.2 using static 指令访问类型的静态成员以及嵌套类型而不需要指定类型名。

4.2 隐式类型的局部变量

4.3 值类型和引用类型

4.3.1 C# 中数据类型分为两类 

4.3.2 值类型

4.3.3 引用类型

4.4 null

4.5 显式数据类型转换

4.6 不使用转型操作符的转换


一、C# 介绍

1.1 托管代码(Manage Code ) :

        依赖于.NET 框架,在CLR(Common Language Runtime ) 管理下运行的代码

1.2 基础类型库 (Base Class Library):

        BCL 是公共语言基础标准库Common Language Infrastructure (CLI)之一,它提供了内建的数据类型表示、基本文件访问,自定义属性,格式化、安全属性、 I/O 流、字符串操纵等功能, 例如:System.Int32 , System.String

1.3 程序集(Assembly):

        NET库和可执行文件称为程序集,程序集是编译好的,面向.NETFRAME的代码的逻辑单元。

        程序集中包含的元数据描述了对应代码中定义的类型和方法。程序集也包含描述自身的程序集元数据,这种元数据包含在一个称为“清单”(manifest) 的区域中。

1.4 .NET 框架:

        .NET 所有程序集的集合。

1.5 公共中间语言(Common Intermediate Language),简称 IL。
1.6 C#编译器将源代码编译成CIL,从而生成程序集。
1.7 公共语言运行时 (Common Language Runtime ),简称 CLR。
1.8 所有依赖.NET框架的应用程序都需要CLR,CLR 实现如下功能:
  • CLR 在程序运行时将IL 编译成本地代码。 这个过程称为即时编译( JIT)
  • 带有类型加载器的类型系统,类型加载器负责从程序集中加载类型,类型系统负责验证是否允许使用某些类型
  • 垃圾回收器
  • 线程处理
1.9 .NET框架:

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

1.10 .NET FRAMEWORK 4.8:  
  • 在目录 %windows%\Microsoft.NET\Framework\v4.0.30319下可以找到框架的库及CLR。
  • 可用于.NET Framework的类组织在System名字空间中。 

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

二、Hello World

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("Hello World!");
    }
}

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

ILDASM

        对程序集执行反汇编,显示C# 编译器生成的CIL代码。

三、基本类型

3.1 整数类型
3.1.1 整数数据

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

3.1.2 在指定数据类型时使用C#关键字而不是BCL名称。 
3.2 浮点类型
3.2.1 浮点类型 

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

3.2.2 与浮点数不同,decimal类型保证范围内的所有十进制数都是精确的。例如,0.1M 就是精确值,而不是一个近似值。
3.3 字面量
3.3.1 字面量(Literal value) :源代码中的常量值
 3.3.2 默认情况下,输入带小数点的字面量,编译器会自动把它解释为double 类型,整数值通常默认为int,如果值太大,编译器将把它解释为long,例如:
  • Console.WriteLine(1.618033988749895);     // 1.61803398874989
  • Console.WriteLine(1.618033988749895M);   // 1.618033988749895M
3.3.3 整数字面量解析
  • 没有后缀的字面量按照 int, uint, long, ulong 的顺序,解析成能够存储该值的类型
  • 具有后缀U的数值按照 uint, ulong 的顺序,解析成能够存储该值的类型
  • 具有后缀L的数值按照  long, ulong 的顺序,解析成能够存储该值的类型
  • 如果字面量的后缀是UL 或者LU,则解析成ulong 类型
3.4 布尔及字符类型
3.4.1 布尔类型

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

3.4.2 字符类型

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

3.4.3 字符类型的字面两是用单引号括起来的,如:’A’
3.4.4 可以使用4位十六进制的Unicode值 、带有强制类型转换的整数值、或十六进制表示他们

如: ‘\u0041’     (char)65        ‘\x0041’ 

3.4.5 字符类型:转义字符

        转义字符也能表示一个字符类型的字面量

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

 3.4.6 字符串类型

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

using System;
Class Program
{
    static void Main()
   {
       string s1 = "A string";
       Console.WriteLine("s1 is" + s1); 
   }
}
3.5 字符串字面量
3.5.1 字符串字面量必须放在双引号(“)中, 可以包含Unicode 和转义字符。

        例如:string filename = “C:\\Prosharp\\Helloworld.cs”;

3.5.2 在C#中,可以在字符串前使用@符号,指明转义序列不被处理,结果是一个逐字字符串字面量,它不仅能将反斜杠当作普通字符处理, 也能逐字解释所有空白字符。 例如:

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

3.6 字符串插值
3.6.1 字符串插值使得字符串可以支持嵌入表达式。字符串插值语法在一个字符串字面量前面加上一个$符号前缀,然后将表达式嵌入大括号中, 例如:

        Console.WriteLine($"Your  full name is {firstName} {lastName}");

3.6.2 字符串字面量也可以在”@”符号前面加上”$”符号的字符串插值而成,例如:
using  System;
Class Program
{
    static void Main()
   {
       string  s1 = "Hello World!";
       Console.WriteLine($@"The string is: 
        {s1}"); 
   }
}
3.6.3 string 类常用静态方法

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

3.6.4 字符串的不可变性

        string 类型的关键特性在于它的不可变性(immutable).可以为string 变量赋一个全新的值,但出于性能考虑,没有提供修改字符串内容的机制,例如: 

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

四、其它介绍

4.1 using 和 using static 指令
4.1.1 using 指令有以下种用途
  • 允许使用命名空间的类型而不需要指定命名空间的名字,例如:using System.text;  
  • 允许创建一个类型或命名空间的别名,例如:using Project = PC.MyCompany.Project;
4.1.2 using static 指令访问类型的静态成员以及嵌套类型而不需要指定类型名。

        例如:using static System.Math;

4.2 隐式类型的局部变量

        var 用来声明隐式类型的局部变量。编译器根据声明时初始化语句推断数据类型

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

4.3 值类型和引用类型
4.3.1 C# 中数据类型分为两类 
  • 值类型
  • 引用类型
4.3.2 值类型
  • 值类型存储在栈(即堆栈stack)中
  • 除string 外,基本数据类型都是值类型
4.3.3 引用类型
  • 引用类型存储在托管堆中
  • 引用只复制对数据的引用,所以两个不同变量可引用相同的结构,
    • 例如string s1= “hello world”;        
    • string s2 = s1;  
  • 大多数复杂的c#类,包括用户自定义类型,都是引用类型
  • 如果希望用户自定义类型为值类型,需要声明成结构
  • 一般引用类型需要使用new 操作符从堆上分配对象
4.4 null
  • null值由关键字null标识,表明变量不引用任何有效对象,null值只能赋给引用类型,指针类型,可空值类型。 例如:string faxNumber = null;  
  • 一般不能把 null赋给 值类型,因为值类型不能包含引用。但是从C# 2.0开始,允许使用可空修饰符?声明可存储null 的变量, 例如:
    • int ?count = null;        
    •  // ………….        
    • if (count == null)          
    • // …………….
4.5 显式数据类型转换
  • C# 中,可以使用转型操作符执行转型,通过在圆括号中指定希望变量转换成的类型。转换可能丢失精度和数据,例如:
    • long longNumber = 50918309109; 
    • int   intNumber = (int)longNumber;
  • C# 提供了特殊关键字checked/unchecked 标识代码块, 如果代码块中发生数据溢出,checked 将使得程序抛出异常,如:

【C# Programming】C#第一课(自己学习的笔记),C#,c#,开发语言

  • 不存在从数值类型到bool的有效转换
4.6 不使用转型操作符的转换

        每个数据类型都包含一个Parse() 方法,它允许将字符串转换成对应的数值类型,例如:

 string text = "9.11E-31";
 float kgElectronmass = float.Parse(text); 

        System.Convert 也能将一种类型转换为另一种类型,但是它只支持小的数据类型,而且是不可扩展的。它允许从 char, sbyte, short, int, long, ushort, uint, ulong, float, double, decimal, DateTime 和string 类型中的一种转换到另一种类型

string middleText = "261.626";
double middle = System.Convert.ToDouble(middleText);
bool isMiddle = System.Convert.ToBoolean(middle); 

        所有类型都支持ToString 方法 输出一个类型的字符串表示,例如:文章来源地址https://www.toymoban.com/news/detail-652295.html

bool isMiddle = true;
string text = isMiddle.ToString(); // text = True;

到了这里,关于【C# Programming】C#第一课(自己学习的笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Go 语言第一课》课程学习笔记(十三)

    Go 语言从设计伊始,就不支持经典的面向对象语法元素,比如类、对象、继承,等等,但 Go 语言仍保留了名为“方法(method)”的语法元素。当然,Go 语言中的方法和面向对象中的方法并不是一样的。Go 引入方法这一元素,并不是要支持面向对象编程范式,而是 Go 践行组合

    2024年02月10日
    浏览(36)
  • 《Go 语言第一课》课程学习笔记(十二)

    在 Go 语言中,函数是唯一一种基于特定输入,实现特定任务并可返回任务执行结果的代码块(Go 语言中的方法本质上也是函数)。 在 Go 中,我们定义一个函数的最常用方式就是使用函数声明。 第一部分是 func,Go 函数声明必须以 func 开始。 第二部分是函数名。

    2024年02月11日
    浏览(49)
  • 《Go 语言第一课》课程学习笔记(五)

    Go 语言中有一个特殊的函数:main 包中的 main 函数,也就是 main.main,它是所有 Go 可执行程序的用户层执行逻辑的入口函数。 Go 程序在用户层面的执行逻辑,会在这个函数内按照它的调用顺序展开。 main 函数的函数原型非常简单,没有参数也没有返回值。 Go 语言要求:可执行

    2024年02月12日
    浏览(45)
  • HarmonyOS第一课ArkTS开发语言(TypeScript快速入门)

    ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。要了解什么是ArkTS,我们首先要了解下ArkTS、TypeScript和JavaScript之间的关系: JavaScript是一种属

    2024年02月05日
    浏览(43)
  • 初识自动驾驶技术之旅 第一课 学习笔记

      ​  🎬  江城开朗的豌豆 :个人主页  📝   个人网站   :《 江城开朗的豌豆🫛 》   🔥  个人专栏  : 《 VUE 》 《 javaScript 》 ⛺️  生活的理想,就是为了理想的生活 ! ​ 目录   📚 前言   📘 1.  自动驾驶人才需求与挑战                   📘 2.  Apo

    2024年02月09日
    浏览(41)
  • <HarmonyOS第一课>ArkTS开发语言介绍——闯关习题及答案

    判断题 1.循环渲染ForEach可以从数据源中迭代获取数据,并为每个数组项创建相应的组件。( 对 ) 2.@Link变量不能在组件内部进行初始化。( 对 ) 单选题 1.用哪一种装饰器修饰的struct表示该结构体具有组件化能力?( A ) A. @Component B. @Entry C. @Builder D. @Preview 2.用哪一种装饰

    2024年02月07日
    浏览(45)
  • <HarmonyOS第一课>1·运行Hello World【学习笔记+课后考核】

    其中详细如下: AppScope中存放应用全局所需要的资源文件。         在AppScope,其中有resources文件夹和配置文件app.json5。AppScoperesourcesbase中包含element和media两个文件夹          其中,element文件夹主要存放公共的字符串、布局文件等资源。media存放全局公共的多媒体资

    2024年02月11日
    浏览(45)
  • 64位AT&T汇编语言学习第一课:汇编和链接

    源文件 exitTest.s 内容如下: 源文件里边放的就是源代码,而我这里源代码是使用汇编语言写的,都是一些人类都可以阅读的字符。之后需要经过汇编器的汇编,变成目标文件(里边存放的是机器语言)。我这里使用的汇编器是GAS汇编器,命令是 as ,命令格式是 as 源文件名

    2024年01月17日
    浏览(48)
  • [Go]-Go语言第一课

    1-1 Go语言特点 1-2 Go语言优势与劣势 1-3 Linux下的安装 1-4 Linux下的环境变量 2-1 Go语言-工作区和GOPATH 2-2 Go语言-源码文件的分类和含义 2-34 Go语言-代码包的相关知识 3-1 go run 命令简介 goc2p项目地址:https://github.com/hyper-carrot/goc2p 用go编写了ds和pds,用以打印目录结构 3-4 go run 常用标

    2024年02月09日
    浏览(40)
  • python第一课:如何学好一门语言

    1)了解编程语言的特性和历史 2)了解编程语言的基本语法 3)选择开发工具并实现第一个程序 4)选择一个编程手册,便于查阅 5)选择一个流行的开源框架,并掌握 6)不断实践,并养成阅读技术博客的习惯 1:了解编程语言的特性与发展历史 Python是一种通用的高级编程语

    2024年01月18日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包