C#基础知识

简介:

1.c#概述,c#语言及其特点;c#与.net框架关系

C#概述:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言

特点:1.简单 2.现代 3.面向对象 4.类型安全 5.相互兼容性 6.可伸缩性和可升级性

关系:.NET框架是由微软开发的,致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。
C#只是用于编写运行在该平台上的一种语言。

2.编写第一个c#程序(注释,命名空间,类,Main方法,标识符,关键字,输入,输出语句,)
[csharp] view plain copy
using System;

namespace ConsoleApp2 

class Program 

static void Main(string[] args) 

//输出 Hello word 
Console.WriteLine("Hello word");

        //输入  
        Console.ReadLine();  
    }  
}  

}

3.变量与常量(值类型,引用类型,两者区别,枚举类型,类型转换,变量声明,变量作用域,变量赋值,常量)

值类型 引用类型
1、值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中
2、值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用

枚举:
枚举使用enum关键字来声明,与类同级。 
枚举是值类型,隐式继承自System.Enum,不能手动修改。System.Enum本身是引用类型,继承自System.ValueType。
枚举都是隐式密封的,不允许作为基类派生子类。
枚举类型的枚举成员均为静态,且默认为Int32类型。
每个枚举成员均具有相关联的常数值。
枚举成员不能相同,但枚举的值可以相同。
枚举最后一个成员的逗号和大括号后面的分号可以省略

类型转换:
1.(int)变量名[强制类型转换]
2.int.Parse(string 变量名)
3.int.TryParse(string s, out int result)

  1. Convert.ToInt32

变量赋值:
值类型变量的赋值:值类型变量中保存的是实际数据,在赋值的时候只是把数据复制一份,然后赋给另一个变量。

引用类型变量的赋值: 引用类型变量中保存的是“指向实际数据的引用指针”。在进行赋值操作的时候,它和值类型一样,也是先有一个复制的操作,不过它复制的不是实际的数据,而是引用(真实数据的内存地址)。所以引用类型的变量在赋值的时候,赋给另一变量的实际上是内存地址。这样赋值完成后,2个引用变量中保存的是同一引用,他们的指向完全一样。

变量声明:
数据类型 变量名=值;

常量:
C#常量主要分为两种:编译时和运行时常量
1、编译时常量,在编译时便用该常量的值代替常量变量。
2、运行时常量,在运行时返回一个运行时常量的变量引用

4.表达式与运算符(表达式概念,运算符种类,运算符优先级)

表达式概念:变量常量运算符组成

1.带( )号,[ ]号, . 号的,new,typeof,sizeof,checked,x++,x--级别最高,先计算.
2.++x,--x,+,!
3.算术运算符,先,/,%,再+,-
4.关系运算符,先>,<,>=,<=,is ,as再==和!=
5.条件逻辑运算符&&和||
6.条件运算符b?x:y
7,赋值运算符=,
=,/=,+=,-=

5.字符与字符串(Char类,Char类的使用,String的基本使用,StringBulider的使用)

字符串是由多个字符组成,字符串是引用类型 字符:Char类在C#中表示一个Unicode字符。

3)ToUpper(转换为大写)和ToLower(转换为小写)
string s="RaSer";
string s1=s.ToUpper();//s1="RASER";
string s2=s.ToLower();//s2="raser";
Trim() 出去两边的空格
string str=" dd ";
string s=str.Trim();//s="dd";
Substring 截取字符<str>以index开始截取,并截取lenth个字符(string <str>.Substring(index,lenth))
string str="还在下雨";
string s=str.Substring(2,2);//s="下雨";
Remove删除字符串(字符)
在字符串中移除从startIndex开始,长度为length的字符串,剩下的字符合为一个新的字符串
、Insert 插入
在字符串的index位置上插入字符,原来的字符依次后移,变成一个新的字符串
string str="夜深了";
string s=str.Insert(1,"已经");// s="夜已经深了"
Replace 字符串(字符也是可以的)替换,返回新的字符串
string str="好困呀";
string s=str.Replace("困","精神");//s="好精神呀";
、Equals 比较两个字符串是否相等

6.流程控制语句(选择包括switch,迭代语句即循环(搞明白为什么可以循环),跳转(break,continue,goto,return))
[csharp] view plain copy
int a=6; 
switch(a) 

case:"4" 
console.writeline("4"); 
break; 
case:"5" 
console.writeline("5"); 
break; 
default 
console.writeline("666"); 
break; 
}

break从循环体跳出 continue结束本次循环 goto无条件转移语句
return 跳出循环的同时也做函数返回
7.数组和集合(一维数组和二维数组的声明以及使用,ArrayList类,HashTable,List,Directory字典等常用集合(泛型和非泛型))

[csharp] view plain copy
string[] names = new string[5];//动态初始化 
string[] names1 = new string[3] { "张三", "李四", "王二" };//定义并且赋予初值 动态初始化 
int[] array = { 1, 2, 3, 4, 5 };//静态初始化变量,系统会自动分配内存空间 int[,] array = new int[2, 3];//声明一个两行3列的数组

声明并且进行初始化
[csharp] view plain copy
int[,] array = new int[2, 3] { { 1, 2, 3 }, { 1, 3, 4 } };

ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。

Dictionary表示键和值的集合。

8.属性和方法(属性和方法的概念以及使用,注意,新特性中的自动属性,方法的重载)
1、类的属性:对象所拥有的特征,在类中表示时称为类的属性。

  2、类的方法:对象执行的操作称为类的方法。

重载:
方法名相同。
方法的参数类型、个数、顺序至少有一项不相同。
方法的返回类型可以不相同,但只有返回类型不同是不可以的。
方法的修饰符可以不相同,但只有修饰符不同是不可以的

9.结构和类(结构的概念,类的概念,声明,构造函数,对象的实例化,类和对象的关系,实例的和静态的)

10.密封类和密封方法
密封类使用sealed关键字进行修饰,它不能用作其他类的基类,并且他没有派生类,密封类的作用是防止其他类继承该类,密封方法是使用sealed关键字进行修饰的方法,他并不能影响类的继承,但它可以防止重写基类中特定的虚方法。
[csharp] view plain copy
public sealed class SealClass 
{ }

  public sealed override void MyMethod()  
   {  
       Console.WriteLine("这是一个密封方法!");  
   }   



本文转自 宁金峰 51CTO博客,原文链接:http://blog.51cto.com/13243523/2047608,如需转载请自行联系原作者
相关文章
|
3月前
|
缓存 安全 SoC
GICV2&GICV3的基础知识
GICV2&GICV3的基础知识
65 0
|
7月前
|
存储 编解码 监控
视频基础知识 3
视频基础知识
82 0
|
7月前
|
存储 编解码 索引
视频基础知识 2
视频基础知识
30 0
|
7月前
|
存储 编解码 算法
视频基础知识 1
视频基础知识
121 0
|
8月前
|
存储 Web App开发 SQL
基础知识
基础知识
67 0
|
9月前
前后台交互基础知识
在别人造的轮子上飞奔的时候,轮子背后的前后台交互如何进行一脸懵$.
46 0
|
11月前
|
编译器 C++
C++模板基础知识
本文将讲述C++模板初阶的相关知识。
117 1
|
11月前
|
安全 编译器 程序员
【C++】C++基础知识
其中 { } 内容即为命名空间的成员,注意最后右花括号后不用加分号结尾。
|
边缘计算 网络协议 测试技术
DoIP基础知识
DoIP基础知识
DoIP基础知识