- C#🔥
- 基础知识🎓
- 进制🙉
- 原码反码补码🙈
- 基本语法🙊
- using 关键字 👂
- class 关键字👀
- C# 中的注释❄️
- 成员变量👥
- 成员函数👤
- 实例化一个类💬
- 标识符⚡️
- C# 关键字☀️
- 数据类型🎈
- 值类型(Value types)🐶
- 引用类型(Reference types)🐱
- 对象(Object)类型🐸
- 动态(Dynamic)类型🐨
- 字符串(String)类型🐯
- 指针类型(Pointer types)🐷
- 类型转换🎅
- 隐式类型转换🎄
- 显式类型转换🎁
- 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
原码1 1111111负数的反码1 0000000符号位不变,原码其他位取反负数的补码1 0000001符号位不变,反码+1 基本语法🙊 using 关键字 👂在任何 C# 程序中的第一条语句都是:
using System; using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。
class 关键字👀class 关键字用于声明一个类。
C# 中的注释❄️注释是用于解释代码。编译器会忽略注释的条目。在 C# 程序中,多行注释以 /* 开始,并以字符 */ 终止,如下所示:
/*This program demonstrates
The basic syntax of C# programming
Language */
单行注释是用 ‘//’ 符号表示。例如:
}//end class Rectangle
成员变量👥
变量是类的属性或数据成员,用于存储数据。在上面的程序中,Rectangle 类有两个成员变量,名为 length 和 width。
成员函数👤函数是一系列执行指定任务的语句。类的成员函数是在类内声明的。我们举例的类 Rectangle 包含了三个成员函数: AcceptDetails、GetArea 和 Display。
实例化一个类💬在上面的程序中,类 ExecuteRectangle 是一个包含 Main() 方法和实例化 Rectangle 类的类。
标识符⚡️标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:
- 标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
- 标识符中的第一个字符不能是数字。
- 标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \。
- 标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
- 标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
- 不能与C#的类库名称相同。
关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。 在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。 下图列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):
在 C# 中,变量分为以下几种类型:
- 值类型(Value types)
- 引用类型(Reference types)
- 指针类型(Pointer 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 = value;
例如:
dynamic d = 20;
动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
字符串(String)类型🐯字符串(String)类型 允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。
例如:
String str = "runoob.com";
一个 @引号字符串:
@"runoob.com";
C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待,比如:
string str = @"C:\Windows";
等价于:
string str = "C:\\Windows";
@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。
string str = @"
";
用户自定义引用类型有:class、interface 或 delegate。
指针类型(Pointer types)🐷指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。
声明指针类型的语法:
type* identifier;
例如:
char* cptr;
int* iptr;
类型转换🎅
类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:
- 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
- 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
描述:是一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法。由小到大时,系统自动的进行隐式转换。低精度转高精度,隐式类型转换。
Byte b = 100;
int c = b;
显式类型转换🎁
描述:显式转换需要强制转换运算符。由大变小需要用强制转换,这样需要付出缺失精度的代价。 高精度转低精度,容易造成精度缺失,只会识别低精度的所在的位数得到的数据。 Convert.ToInt32()与字符串拼接 必须两边都是整数类型才能如下转换。
namespace TypeConversionApplication
{
class ExplicitConversion
{
static void Main(string[] args)
{
double d = 666666.66;
int i;
// 强制转换 double 为 int
i = (int)d;
Console.WriteLine(i);
Console.ReadKey();
}
}
}
当上面的代码被编译和执行时,它会产生下列结果:
666666
C# 类型转换方法🔔C# 提供了下列内置的类型转换方法:
序号方法&描述1ToBoolean 如果可能的话,把类型转换为布尔型。2ToByte 把类型转换为字节类型。3ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。4ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。5ToDecimal 把浮点型或整数类型转换为十进制类型。6ToDouble 把类型转换为双精度浮点型。7ToInt16 把类型转换为 16 位整数类型。8ToInt32 把类型转换为 32 位整数类型。9ToInt64 把类型转换为 64 位整数类型。10ToSbyte 把类型转换为有符号字节类型。11ToSingle 把类型转换为小浮点数类型。12ToString 把类型转换为字符串类型。13ToType 把类型转换为指定类型。14ToUInt16 把类型转换为 16 位无符号整数类型。15ToUInt32 把类型转换为 32 位无符号整数类型。16ToUInt64 把类型转换为 64 位无符号整数类型。下面的实例把不同值的类型转换为字符串类型:
实例
namespace TypeConversionApplication
{
class StringConversion
{
static void Main(string[] args)
{
int i = 75;
float f = 53.005f;
double d = 2345.7652;
bool b = true;
Console.WriteLine(i.ToString());
Console.WriteLine(f.ToString());
Console.WriteLine(d.ToString());
Console.WriteLine(b.ToString());
Console.ReadKey();
}
}
}
当上面的代码被编译和执行时,它会产生下列结果:
75 53.005 2345.7652 True
基本输入、输出函数🎉输出函数
System.Console.WriteLine("Hello Wrold!")
此方法是 Console 类的输出方法之一。 如果程序开始处包含 “using ”指令,则无需完全限定 System 类和方法即可直接使用它们。 例如,可以改为调用 Console.WriteLine 而非 System.Console.WriteLine
输入函数
//读取一个字符,随便按下一个字符后终止输入操作
int n = Console.Read ();
//读取一行字符,按回车结束输入操作
string str = Console.ReadLine ();
string->int
总结💬
本篇文章介绍了C#中一些基础知识,是接着上一篇博客写的 主要介绍了C#中的进制、原码反码、基本语法、数据类型、类型转换、基本输入输出
可能有些地方写的不是很全,大概就是这样啦。有空会继续更新
传送门上 一 篇 \color{00ff90}{上一篇 } 上一篇☀️ 学会编程入门必备 C# 最基础知识介绍(一) 下 一 篇 \color{00ff90}{下一篇} 下一篇 ☀️ 学会编程入门必备 C# 最基础知识介绍(三)——变量、常量、运算符、判断、循环