asp.net(一)——c#基础
来源:互联网 发布:nginx location 正则 编辑:程序博客网 时间:2024/05/21 17:37
C#基础
1.注释:单行// 多行/…/ 方法///
2.访问修饰符
public:成员可以从任何代码访问。
protected:成员只能从派生类访问。
internal:成员只能从同一程序集的内部访问。
protected internal:成员从同一程序集内部或者派生类访问。
private:成员只能在当前类的内部访问。
3.数据类型
值类型(Value types)
c#中有无符号类型,如uint
bool 布尔值
int 32 位有符号整数类型
long 64 位有符号整数类型
byte 8 位无符号整数
float 32 位单精度浮点型
….
enum 枚举
如 enum Days{Monday,Tuesday}
如果强转成int会从0开始,通过赋值可改变数值如enum Days{Monday=1,Tuesday=2}可以配合switch使用
默认是对应int型的,可改变如enum Days:short{Monday,Tuesday}
struct 结构 自定义类型(底层都是struct)如果使用使用class则所有实例都存储在堆栈上
(注,可以直接用值类型调用方法,存储在栈内存上)
引用类型(Reference types)
object 所有类型的基类
string
用==比较,(运算符重载)
s[1],根据下标获取某一个字符
加上@之后,不会进行转义如 String s=@”c:\aa.txt”; 等价于 s=”c:\aa.txt”
StringBuilder AppendFormat(“hello{0}{1}”,”word”,”!!!!”);第一个参数是格式,{0}传参,后面是参数
dynamic(类型检查在运行阶段)
指针类型(Pointer types)
类型推断:使用var 关键字,编译器可以推断出类型
可为空类型
int? isnu=100;等价于System.Nullable isnu=100;
3.表达式
4.流程控制
跳转语句 goto 标识符,跳转到程序中用标签指定的另一行
goto labell;
…
labell:
…
循环 foreach 用in代替java的:如
foreach(var tem in array){…}
跳出循环:break;
跳过一次循环:continue
5.关键字
abstract是关键字
@abstract 标识符
6.对象和类型
属性
public int Age{
get{return age+10};
set;
}
常量声明使用const关键字相当于java的static final
public const string One=”1”
传参—默认都是通过值传递,即传递一个变量的副本,方法退出后,对变量的修改会丢失。
使用ref关键字,可以强制使用引用传递如 ,但是所有的引用都需要初始化值
void fun(ref int i){
i=10;
}
这样会影响原来的值
*使用out 关键字,这样可以不用初始化,调用方法时,可以返回多个值
只读字段 readonly
get set方法 public string name{get;set}
7.关于System.Object的一些方法
ToString() 将对象转化为字符串
8.继承
使用: 表示继承extends
把一个基类函数声明为virtual,就可以重写了.字段也可以,虚方法
public class MyC : MyA,MyB{
}
base关键字对应–java的super
抽象类 abstract 可以被继承
终类:使用sealed关键字,—–类似java的final
与java一样单继承,多实现
接口与java一样
抽象类:abstract关键字 接口: interface(不能有字段,所有的方法都是抽象的) 如果是继承实现抽象的方法加上override关键字 public override int geti(){ return 2; } 如果是实现接口,实现接口中的方法,不用加该关键字
9.异常
C# 中的异常类主要是直接或间接地派生于 System.Exception
用户自定义的异常类是派生自 ApplicationException 类
10.类型转换。关于强转,如果是引用或非空类型可以使用as关键字如
int—string i.ToString();
string—int Convert.ToInt32(“100”)或Int32.Parse(“100”);或者int n; bool s=Int32TryParse(“100”,out n);会返回布尔型,转换蔡成功n=100,s=ture否则n=0,s=false
装箱—值类型转换为引用类型,int i=100; object oi=i;
拆箱- int j=(int)oi
11.集合
链表:List ArrayLiat 键值对:Hashtable m.Add("name","jock");m["name"] Dictionary 如果获取一个不存在的key会报错 ConcurrentDictionary 线程安全的 SortedList 会根据key值排序//继承父类方法加上virtual之后,可以被重写,重写的方法加上override关键字;如果不重写,但又同名,使用new关键字。 //如果不希望被继承,使用sealed关键字-----相当于final //实例化过程,与java类似 /* //一维数组值 int[] n = new int[5]; int[] n1 = { 1,2,3,4,5}; n[0] = 1; //二维数组 string[,] n2 = new String[5, 4]; n2[0, 0] = "1"; //数组的数组,有一个维度长度不固定,初始化指定 int[][] n3= new int[2][]; int[][] n4 = { new int[] { 1, 2, 4 }, new int[] { 1, 3 } }; n3[0] = new int[6]; n3[1] = new int[2]; n3[2] = new int[4]; n3[0][0] = 3; #region 3.集合 ArrayList al = new ArrayList(); al.Add(4); Hashtable m = new Hashtable(); m.Add("name","jock"); Console.WriteLine(m["name"]); Dictionary<String, String> m1 = new Dictionary<String, String>();
12.IO
、、、、、、、、、、、、、、、、、、、、、、、、
//遍历目录 //File 静态的方法,FileInfo需要实例化调用方法 //文件是否存在 File.Exists(@"path"); DirectoryInfo dir = new DirectoryInfo(@"F:\"); foreach (FileInfo f in dir.GetFiles("*.exe")) { String n=f.Name;//文件名 long size = f.Length;//大小 DateTime creattime = f.CreationTime;//创建时间 Console.WriteLine(n + ""+size); }、、、、、、、、、、、、、、、、、、、、、、、 //新建文件并写入内容 class Program { private const string FILE_NAME = @"F:\a.txt"; public static void Main(string[] args){ if (File.Exists(FILE_NAME)) { //若存在则返回 return; } FileStream fs = new FileStream(FILE_NAME,FileMode.Create); BinaryWriter w = new BinaryWriter(fs); w.Write("aaa"); w.Close(); fs.Close(); } }。。。。。。。。。。。。。。。。。。。。。。。//向现有文件添加内容,,使用using 关键字,使用完就会释放。io读写,数据库连接时使用 class Program { private const string FILE_NAME = @"F:\a.txt"; public static void Main(string[] args){ using (StreamWriter w=File.AppendText(FILE_NAME)) { log("this is a waring",w); w.Close(); } } public static void log(string log,TextWriter w) { w.WriteLine(DateTime.Now + ":message:"+log); w.Flush(); } }。。。。。。。。。。。。。。。。。。。。。。。//FileStream 读文件 class Program { private const string FILE_NAME = @"F:\a.txt"; public static void Main(string[] args){ if (!File.Exists(FILE_NAME)){ //若不存在则返回 return; } FileStream fs = new FileStream(FILE_NAME, FileMode.Open,FileAccess.Read); BinaryReader r = new BinaryReader(fs); for (int i=0;i<5;i++) { Console.WriteLine(r.ReadString()); } r.Close(); fs.Close(); Console.ReadKey(); } };;;;;;;;;;;;;;;;;;;;;;;//读文件 StreamReader class Program { private const string FILE_NAME = @"F:\a.txt"; public static void Main(string[] args) { if (!File.Exists(FILE_NAME)) { //若不存在则返回 return; } using (StreamReader sr=File.OpenText(FILE_NAME)) { String input; while ((input=sr.ReadLine())!=null) { Console.WriteLine(input); } sr.Close(); } Console.ReadKey(); } }
///时间与日期//DateTime 几乎可以获取时间相关的所有信息//TimeSpan 表示时间段 可应用于时间运算 static void DateAndTime() { ///获取当前时间2017/12/5 21:10:43 DateTime dt = DateTime.Now; Console.WriteLine(dt+"b"); ///日期格式化,参数为你想要的格式 string d1 = dt.ToString("yyyy-mm-dd"); Console.WriteLine(d1); ///获取毫秒数,只能根据当前时间-1970/01/01的毫秒时间差 TimeSpan ts = DateTime.Now - DateTime.Parse("1970-1-1"); long l = (long)ts.TotalMilliseconds; Console.WriteLine(l); /// }
- asp.net(一)——c#基础
- ASP.NET基础(一)
- ASP.NET C# MVC 初学(一)
- ASP.NET C# MVC 初学(一)
- asp.net基础复习(一)——Theme和skin
- asp.net基础复习(一)——Theme和skin
- ASP。net开发基础(一)
- C# ASP.NET開發筆記(一)
- ASP.Net MVC (一)—原来如此
- ASP.NET零基础学习(一):ASP.NET与ASP综合测评
- C#基础-------ASP.NET面试资料(1)
- ASP.NET 2.0之WebPart 一 (C#语言)
- ASP.NET 2.0之WebPart 一 (C#语言)
- hjr-c#实习日记(一):asp .net web api
- 学习ASP.NET(一) 简单复习C#
- ASP.NET C#学习一(环境基础知识)
- 【学习日记】ASP.NET[基础一(ashx)]
- ASP.NET C#篇 基础回顾
- Super Pow问题及解法
- 为什么你的用户总是不满意?
- 在Spring的XML文件中通过命名空间配置的标签是怎么解析的?
- spring mvc 报错 expected at least 1 bean which qualifies as autowire candidate for this depende (201
- 范数(L21,L2,核范数)
- asp.net(一)——c#基础
- 华为张延德:智慧城市是必然趋势 | 洞见2018中国HR服务峰会惊艳业界
- 入门到放弃node系列之网络模块(二)
- 盒子模型初学
- 浅谈产品生态的力量
- scanf_s函数 (c++)
- mysql索引背后的数据结构及算法
- bitnami redmine修改网页访问端口
- 【Java基础总结】-Java笔试易错点 第一篇