主页
文章
分类
系列
标签
C#
发布于: 2019-7-13   更新于: 2019-7-13   收录于: Language , Cheat sheet
文章字数: 1600   阅读时间: 4 分钟  

数据类型

类型 大小 举例
String 2 bytes/char s = “reference”
bool 1 byte b = true
char 2 bytes ch = ‘a’
byte 1 byte b = 0x78
short 2 bytes val = 70
int 4 bytes val = 700
long 8 bytes val = 70
float 4 bytes val = 70.0F
double 8 bytes val = 70.0D
decimal 16 bytes val = 70.0M

数组

声明

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
//使用花括号定义的列表初始化
int[] nameArray = {100, 101, 102};

//定义一个空数组
int[] nameArray = new int[3];

//访问数组中的特定项
int[] nameArray = new int[10];
int firstNumber = nameArray[0];
nameArray[1] = 20;

//多维数组
int [,] matrix = new int [2,2]
matrix[0,0] = 1;
matrix[0,1] = 2;
matrix[1,0] = 3;
matrix[1,1] = 4;

int[,] predefinedMatrix = new int[2,2] { { 1, 2 }, { 3, 4 } };

数组操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
//升序
Array.Sort(nameArray);

//排序从元素6开始,对20个元素进行排序
Array.Sort(nameArray,6,20);

//使用1个数组作为键并对2个数组排序
string[] values = {"Juan", "Victor", "Elena"};
string[] keys = {"Jimenez", "Martin", "Ortiz"};
Array.Sort(keys, values);

//清除数组中的元素(array, first element, # elements)
Array.Clear(nameArray, 0, nameArray.Length);

//将元素从一个数组复制到另一个数组
Array.Copy(scr, target, numOfElements);

字符串

字符串操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//要在字符串之间连接,请使用加号运算符
string firstName = "Erin";
string lastName = "Roger";
string fullName = firstName + " " + lastName;

//要将一个字符串添加到另一个字符串,使用+=运算符
string secondLastName = "Green";
string fullName += secondLastName;

//ToString function
//它将对象转换为字符串表示形式,以便适合显示
Object.ToString();

//String formatting
//函数的每个附加参数都可以在字符串中使用带索引号的括号操作符引用
String.Format(String format, Object arg0);

//Substring
//返回字符串的一部分,从作为参数指定的索引开始。子字符串也接受子字符串的最大长度
String.Substring(beginAt);
String.Substring(beginAt, maximum);

//Replace
string newStr = oldStr.Replace("old","new");

//IndexOf
//在更大的字符串中查找第一次出现的字符串
//如果没有找到该字符串,则返回-1
String.IndexOf(val, start, num)

//Split用于将分隔字符串拆分为子字符串
String.Split(Char[]);

//ToCharArray
//将选定的字符放入字符数组中的字符串中
String str = "AaBbCcDd";
var chars = str.ToCharArray();
//创建'B'和'C'数组
var chars = str.ToCharArray(2,2);

StringBuilder

1
2
3
4
5
6
7
// System.Text.StringBuilder
StringBuilder sb = new StringBuilder();
StringBuilder sb = new StringBuilder(myString);
StringBuilder sb = new StringBuilder(myString, capacity);

myString - Initial value of StringBuilder object
capacity - Initial size of buffer

DateTime

1
2
3
4
5
6
DateTime(year, month, day)
DateTime(year, month, day, hour, minute, second)

DateTime newYear = DateTime.Parse("1/1/2018"):
DateTime currentDate = DateTime.Now;
DateTime nextYear = DateTime.AddYears(1);

TimeSpan

1
2
3
4
TimpeSpan(hour, minute, sec)

TimeSpan timeS = new TimeSpan(10, 14, 50);
TimeSpan timeS_Hours = TimeSpan.FromDays(3640);

格式化

格式化语法: {index[,alignment][:format string]}

  • index - 指定值列表中应用格式的元素
  • aligment - 指示显示值的最小宽度(以字符为单位)
  • format string - 包含指定显示值格式的代码
Format   Name           Pattern             Value       Result
C or c   Currency       {0:C2}, 1000.1      $ 1000.1    A currency value
D or d   Decimal        {0:D5}, 30          00030       整数数字
E or e   Exponential    {0,9:E2}, 120.2     1.20+E002   指数
F or f   Fixed-point    {0,9:F2}, 120.2     120.2       积分和带可选负号的十进制数字
G or g   General        {0,9:G2}, 120.2     120.2       更紧凑的定点记数法或科学记数法
N or n   Number         {0,9:N1}, 1300.5    1,300,5     整数和十进制数字、分组分隔符和带可选负号的十进制分隔符
P or p   Percent        {0,9:P3}, .0903     9.03%       数字乘以100,并用百分号显示
R or r   Round-trip     {0,9:R}, 3.1416     3.1316      可以往返于相同数字的字符串
X or x   Hexadecimal    {0,9:X4}, 31        001f        十六进制字符串

流程控制

Switch

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
switch (expression) {
    case expression:
        //statements
        break/ goto / return()

    case ..
    default
        //statements
        break/ goto / return()
}

If

1
2
3
4
5
if (condition) {
    //statements
} else {
    //statements
}

While

1
while (condition) {body}

Do while

1
do {body} while condition;

For

1
2
3
for (initializer; termination condition; iteration;) {
        //statements
}

For each

1
2
3
foreach (type identifier in collection)  {
    //statements
}

public | protected | internal | private
abstract | sealed | static

1
class className [:class/interfaces inherited from]

类定义

[access modifier] className (parameters) [:initializer] 初始化器-基调用基类中的构造函数,这将调用类内的构造函数

1
2
3
4
public class nameClass : Initializer {
    public className(dataType param1 , dataType param2, ...) : base(param1, param2)
    { constructor body }
}

函数

[access modifier] static | virtual | override | new | sealed | abstract
methodName (parameter list) { body }

  • virtual – 方法可以在子类中重写
  • override – 重写基类中的虚方法
  • new – 在基类中隐藏非虚方法
  • sealed – 防止派生类继承
  • abstract – 必须由子类实现

传递参数:

  1. 默认情况下,参数是按值传递的
  2. 通过引用传递: ref, in 和 out 修饰符

若要通过引用传递参数以更改值,请使用ref或out关键字
如果要通过引用传递,目的是避免复制但不改变值,请使用 in 修饰符

属性

1
2
3
4
5
6
7
[modifier] <dataType> property name{
    public string BrandName
    {
        get { return brandName; }
        set { brandName = value; }
    }
}

结构

结构定义

1
[attribute][modifier] struct name [:interfaces] { struct-body }

结构与类的区别

  • 类是引用类型,结构是值类型
  • 结构不支持继承
  • 结构不能有默认构造函数

枚举

声明enum变量

1
2
3
enum <enumName> {
    enumeration list
};
  • enumName - 枚举类型名称
  • enumeration list - 枚举列表是一个逗号分隔的标识符列表
    枚举列表中的每一个符号都代表一个整数值,比它前面的符号大 1

委托

委托是保存方法引用的引用类型变量。可以在运行时更改引用

声明委托

委托声明确定委托可以引用的方法。

1
delegate <return type> <delegate-name> <parameter list>

实例化委托

创建委托时,传递给 new 表达式的参数类似于方法调用,但没有方法的参数

1
2
3
public delegate void printString(string s);
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);
Andy
Welcome to andy blog
目录
相关文章
Go
安装 前往 官网 下载 go1.19.4.linux-amd64.tar.gz 1 2 3 tar -C /usr/local/ -xzf go1.19.4.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin go version 看到版本号代表 go 安装成功 编译器命令 1 2 3 4 5 6 7 8 9 10 11 12
2019-12-30
Python
常规 Python 对大小写敏感 Python 的索引从 0 开始 Python 使用空白符(制表符或空格)来缩进代码,而不是使用花括号 帮助 获取主
2018-10-6
Batch
什么是批处理 批处理(Batch),也称为批处理脚本,批处理就是对某对象进行批量的处理 批处理文件的扩展
2017-11-5
Bash
常用快捷键 默认使用 Emacs 键位 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 CTRL+A # 移动到行
2017-4-21
JavaScript
基础知识 类型 基本类型 最新的 ECMAScript 标准定义了 8 种数据类型,分别是 string number bigint boolean null undefined symbol (ECMAScript 2016新增) 所有基本类型
2016-2-26
Lua
Lua 特性 轻量级:源码2.5万行左右C代码, 方便嵌入进宿主语言(C/C++) 可扩展:提供了易于使用的扩展
2015-1-15
Redis
启动 Redis 1 2 3 4 redis-server /path/redis.conf # 指定配置文件启动 redis redis-cli # 开启 redis 客户端 systemctl restart redis.service # 重启 redis systemctl status redis # 检查 redis 运行状态 字符串 1 2
2019-12-24
Nginx
Nginx 常用命令 官方文档 1 2 3 4 5 sudo nginx -t # 检测配置文件是否有错误 sudo systemctl status nginx # nginx 当前的运行状态 sudo systemctl reload nginx # 重新加
2018-2-12
Linux
bash 目录操作 文件操作 进程管理 管道符 竖线 | ,在 linux 中是作为管道符的,将 | 前面命令的输出作为 | 后面的输入 1 grep
2018-1-12
Core Dump
Core Dump 设置 生成 core 默认是不会产生 core 文件的 1 ulimit -c unlimited # -c 指定 core 文件的大小,unlimited 表示不限制 core 文件
2017-12-21