C#🔥
简介
C#是微软公司发布在2000年6月发布的一种面向对象的、安全的、稳定的、简单的、优雅的由C和C++衍生出来的面向对象的编程语言,它在继承C和C++强大功能的同时去掉了一些它们的复杂特性,运行于.NET
Framework和.NET Core (完全开源,跨平台)之上的高级程序设计语言。 C#读作C
Sharp。最初它有个更酷的名字,叫做COOL。 微软从1998年12月开始了COOL项目,直到2000年2月 ,COOL被正式更名为C#。
简单介绍一下,上一篇文章有专门的介绍哦~~
本篇文章介绍了C#中一些最基础的知识,是接着上一篇博客写的
主要介绍了C#中的进制、原码反码、基本语法、数据类型、类型转换、基本输入输出
传送门 C# 最基础知识介绍(一)
基础知识🎓
进制🙉
进制是计算机必备的知识,这里简单介绍一下转换用法,就不多做介绍了
二进制————逢二进一
八进制————逢八进一
十进制————逢十进一
十六进制————逢十六进一
逢二进一:0、1、101、1100
逢八进一:17、21、33、41
逢十进一:1、12、33、4、5、6、99
逢十六进一:9、A、B、C、D、E、F、3F、10
十进制转二进制
方法一:666 = 512 + 128 + 16 + 1
= 10 1001 0001
八进制转二进制 口诀:记住一二四,一位拆三位
1 2 6
001 010 110
二进制转八进制 口诀:记住一二四,三位合一位
110 111 001
6 7 1
十六进制转二进制 口诀:记住一二四和八,一位拆分成四位
1 A 2 F
0001 1010 0010 1111
二进制转十六进制 口诀:记住一二四和八,四位融合成一位
0001 1011 1001
1 B 9
原码反码补码🙈
正数的原码、反码、补码是一样的
原码:0 1111111
反码:0 1111111
补码:0 1111111
基本语法🙊
using 关键字 👂
在任何 C# 程序中的第一条语句都是:
using System;
using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。
class 关键字👀
class 关键字用于声明一个类。
C# 中的注释❄️
注释是用于解释代码。编译器会忽略注释的条目。在 C# 程序中,多行注释以 /* 开始,并以字符 */ 终止,如下所示:
/*This program demonstrates
The basic syntax of C# programming
Language */
单行注释是用 ‘//’ 符号表示。例如:
}//end class Rectangle
• 1
成员变量👥
变量是类的属性或数据成员,用于存储数据。在上面的程序中,Rectangle 类有两个成员变量,名为 length 和 width。
成员函数👤
函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。我们举例的类
Rectangle 包含了三个成员函数: AcceptDetails、GetArea 和 Display。
实例化一个类💬
在上面的程序中,类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类。
标识符⚡️
标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:
标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
标识符中的第一个字符不能是数字。
标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \。
标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
不能与C#的类库名称相同。
C# 关键字☀️
关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。
在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。
下图列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):
数据类型🎈
在 C# 中,变量分为以下几种类型:
值类型(Value types)
引用类型(Reference types)
指针类型(Pointer types)
值类型(Value types)🐶
值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。
值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。
下图列出了 C# 2010 中可用的值类型:
如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸:
实例:
using System;
namespace DataTypeApplication
class Program
static void Main(string[] args)
Console.WriteLine("Size of int: {0}", sizeof(int));
Console.ReadLine();
当上面的代码被编译和执行时,它会产生下列结果:
Size of int: 4
引用类型(Reference types)🐱
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。
换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。
对象(Object)类型🐸
对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。
当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。
object obj;
obj = 100; // 这是装箱
动态(Dynamic)类型🐨
您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。
声明动态类型的语法:
dynamic <variable_name> = value;
例如:
动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
字符串(String)类型🐯
字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。
例如:
String str = "runoob.com";
一个 @引号字符串:
C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待,比如:
string str = @"C:\Windows";
等价于:
string str = "C:\\Windows";
@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。
string str = @"<script type=""text/javascript"">
</script>";
用户自定义引用类型有:class、interface 或 delegate。
指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。
声明指针类型的语法:
例如:
类型转换🎅
类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:
隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换,
不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
隐式类型转换🎄
描述:是一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法。由小到大时,系统自动的进行隐式转换。低精度转高精度,隐式类型转换。
描述:显式转换需要强制转换运算符。由大变小需要用强制转换,这样需要付出缺失精度的代价。
高精度转低精度,容易造成精度缺失,只会识别低精度的所在的位数得到的数据。
Convert.ToInt32()与字符串拼接
必须两边都是整数类型才能如下转换。
当上面的代码被编译和执行时,它会产生下列结果:
666666
C# 提供了下列内置的类型转换方法:
下面的实例把不同值的类型转换为字符串类型:
当上面的代码被编译和执行时,它会产生下列结果:
75
53.005
2345.7652 True
输出函数
此方法是 Console 类的输出方法之一。
如果程序开始处包含 “using ”指令,则无需完全限定 System 类和方法即可直接使用它们。
例如,可以改为调用 Console.WriteLine 而非 System.Console.WriteLine
输入函数