C#复习-基础篇

C#复习-基础篇


最近要考.Net,就顺便总结了下相关概念,并提供了相关例题。如有错误或不当之处,请赐教。

一、基础代码块

1.1 基本程序结构

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudyTest01
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
        
        }
    }
}

注意:Main函数在每个项目中以单例形式存在,入口在Program类中。

1.2 输出"Hello, Wang!"

  • 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudyTest01
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
            Console.WriteLine("Hello, Wang!"); // 向控制台输出内容
            Console.ReadKey(); // 保持焦点,如果没有使用此语句,程序运行完成后立即终止
        }
    }
}

  • 结果
Hello, Wang!

1.3 改变控制台输出颜色

  • 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudyTest01
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
            Console.ForegroundColor = ConsoleColor.Green; // 改变控制台输出颜色为绿色
            Console.WriteLine("Hello, Wang!"); // 向控制台输出内容
            Console.ReadKey(); // 保持焦点,如果没有使用此语句,程序运行完成后立即终止
        }
    }
}
  • 结果

在这里插入图片描述

二、数据类型

2.1 分类

2.1.1 值类型

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。

类型 描述 默认值
bool 布尔值 False
byte 8 位无符号整数 0
char 16 位 Unicode 字符 ‘\0’
decimal 128 位精确的十进制值,28-29 有效位数 0.0M
double 64 位双精度浮点型 0.0D
float 32 位单精度浮点型 0.0F
int 32 位有符号整数类型 0
long 64 位有符号整数类型 0L
sbyte 8 位有符号整数类型 0
short 16 位有符号整数类型 0
uint 32 位无符号整数类型 0
ulong 64 位无符号整数类型 0
ushort 16 位无符号整数类型 0
2.1.2 引用类型
  • Object(对象类型)

对象(Object)类型是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。

当一个值类型转换为对象类型时,则被称为装箱;另一方面,当一个对象类型转换为值类型时,则被称为拆箱

  • Dynamic(动态类型)

动态数据类型可以存储任何类型的值。这些变量的类型检查是在运行时发生的。

  • String(字符串类型)

字符串(String)类型允许您给变量分配任何字符串值。字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。

2.1.3 指针类型

指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。

2.2 类型转换

2.2.1 隐式类型转换

隐式类型转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。

2.2.2 显式类型转换

显式类型转换显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

一般使用的是System.Convert中的To类型方法完成转换。

三、变量类型

3.1 分类

类型 举例
整数类型 sbyte、byte、short、ushort、int、uint、long、ulong 和 char
浮点型 float 和 double
十进制类型 decimal
布尔类型 true 或 false 值,指定的值
空类型 可为空值的数据类型

3.2 左/右值

  • 左值表达式可以出现在赋值语句的左边或右边。
  • 右值表达式可以出现在赋值语句的右边,不能出现在赋值语句的左边。

3.3 常量

常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。

3.3.1 整数常量

整数常量可以是十进制八进制十六进制的常量。前缀指定基数:0x0X 表示十六进制0 表示八进制,没有前缀则表示十进制

3.3.2 浮点常量

浮点常量是由整数部分、小数点、小数部分和指数部分组成。可以使用小数形式或者指数形式来表示浮点常量。

注:使用小数形式表示时,必须包含小数点、指数或同时包含两者。使用指数形式表示时,必须包含整数部分、小数部分或同时包含两者。有符号的指数是用 e 或 E 表示的。

3.3.3 字符常量

字符常量是括在单引号里,例如,‘x’,且可存储在一个简单的字符类型变量中。一个字符常量可以是一个普通字符(例如 ‘x’)、一个转义序列(例如 ‘\t’)或者一个通用字符(例如 ‘\u02C0’)。

3.3.4 字符串常量

字符串常量是括在双引号 “” 里,或者是括在 @"" 里。字符串常量包含的字符与字符常量相似,可以是:普通字符、转义序列和通用字符。

3.4 案例

3.4.1 整型

小明的年龄为20岁。

请使用不同位数的整型变量表示并输出他的年龄。

  • 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudyTest01
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
            short sAge = 20;
            int mAge = 20;
            long lAge = 20L;
            Console.WriteLine("16位 "+sAge);
            Console.WriteLine("32位 "+mAge);
            Console.WriteLine("64位 " + lAge);
            Console.ReadKey(); // 保持焦点,如果没有使用此语句,程序运行完成后立即终止
        }
    }
}
  • 结果

在这里插入图片描述

3.4.2 实型

汽车的速度为120.00KM/H。

请使用不同位数的实型变量表示并输出它的速度。

  • 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudyTest01
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
            float fSpeed = 120.00f;
            double dSpeed = 120.00;
            Console.WriteLine("32位{0:N} ", fSpeed); // 0代表第一个参数,也就是后面的fSpeed,N代表以自然数形式输出
            Console.WriteLine("64位{0:N} ", dSpeed);
            Console.ReadKey(); // 保持焦点,如果没有使用此语句,程序运行完成后立即终止
        }
    }
}
  • 结果

在这里插入图片描述

3.4.3 字符串型

小狗的名字叫“Marry”。

请使用字符串型变量表示并输出它的名字。

  • 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudyTest01
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
            string name = "Marry";
            Console.WriteLine("小狗的名字:" + name);
            Console.ReadKey(); 
        }
    }
}
  • 结果

在这里插入图片描述

四、运算符

4.1 算术运算符

设变量A 的值为5,变量B 的值为6。

运算符 描述 实例
+ 把两个操作数相加 A + B 将得到 11
- 从第一个操作数中减去第二个操作数 A - B 将得到 -1
* 把两个操作数相乘 A * B 将得到 30
/ 分子除以分母 B / A 将得到 1.2
% 取模运算符,整除后的余数 B % A 将得到 1
++ 自增运算符,整数值增加 1 A++ 将得到 6
自减运算符,整数值减少 1 A-- 将得到 4

4.2 逻辑运算符

设变量 A 为布尔值 true,变量B为布尔值 false。

运算符 描述 实例
&& 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

4.3 关系运算符

设变量A 的值为5,变量B 的值为6。

运算符 描述 实例
== 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。

4.4 位运算符

  • 真值表
p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
  • 设变量A的值为6(0110),变量B的值为8(1000)。
运算符 描述 实例
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 0,即为 0000
| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 14,即为 1110
^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 14,即为 1110
~ 按位取反运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0,包括符号位。 (~A ) 将得到 -7,即为 0111,一个有符号二进制数的补码形式。
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 24,即为 0001 1000
>> 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0001

4.5 赋值运算符

运算符 描述 实例
= 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *&#
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值