栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C#入门学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#入门学习

C#
  • 一. Net FraameWork框架
    • 1. 公共语言运行是(CLR)
    • 2. .Net类库
  • 二. 项目文件讲解
  • 三. 基础
    • 1.数据类型
    • 2.占位符
    • 3.基础语法
      • 1).控制台显示
      • 2).@用法
      • 3).Convert/TryParse/parse
      • 4).异常捕获
      • 5).枚举
      • 6).方法里面的高级参数
      • 7).重载
    • 4.面向对象
      • 1).属性(get/set)
      • 2).静态和非静态
      • 3).构造函数
      • 4).new
      • 5).this
      • 6).析构函数
      • 7).值类型/引用类型
      • 8).字符串
      • 9).继承
      • 10).new 子类隐藏父类同名函数
      • 11)里氏转换
    • 5.集合
      • 1).ArrayList
  • 注:VS快捷键
    • 学习内容2
    • 详细内容:
  • 表格:
  • 学习产出:

一. Net FraameWork框架

提供稳定环境保证.Net正常运行

1. 公共语言运行是(CLR) 2. .Net类库 二. 项目文件讲解

.sln :解决方案文件,里面包含着整个解决方案的信息,可以双击运行。
.csproj:项目文件,里面包含着这个项目的信息,可以双击运行。

三. 基础 1.数据类型

decimal 数值后面跟一个m,金钱小数类型

2.占位符

{0},{1},{2}
Console.WriteLine(“{0}{1}{2}”,a,b,c);

3.基础语法 1).控制台显示

Console.WriteLine(“控制台显示数据”)。
Console.ReadKey();//暂停当前程序,等于用按下任意键继续,按下的任意键显示到控制台中。
String str=Console.ReadLine();//获取控制台数据

2).@用法

System.IO.File.WriteAllText(@“地址”,str(文本));//写入文本
//1. 前面加一个@地址里面的就可以取消转义符的作用。
//2.保持编辑字符串原有格式输出。

3).Convert/TryParse/parse

Convert
转换工厂转换,能够转才可以
成功了就是返回,不成功就抛出异常
String s=“123”;
double numble=Convert.ToDouble(s);
数据类型.TryParse
数据类型转换,成功过了返回true,失败返回false
double d=int.TryParse(s,out i);
数据类型.parse(“字符串”)
字符串转成数据类型

4).异常捕获

try-catch

5).枚举

[public] enum 枚举名 Gender
{
值1,男,(男=2)
值2 女
}
枚举转换成其他类型
Gender gender=Gender.男;
(int)gender.男;//0
(gender)1;//女
字符串转成枚举类型
string s=“男”;
Enum.Parse(typeof(Gender),s);
//如果是数字串没有不会,抛出异常
//文本,就会抛出异常

6).方法里面的高级参数

(1).out
返回多个数据类型不同的值。out返回参数值,要求在方法内部必须赋值
public static void a(int[] num,out int max,out string min){
}
int max;
string min;
a(num,max,min);
(2).ref
将一个变量带入方法,改变完成后带回。跟C++引用相似
int a=3;
add(ref a);
void add(ref int a)
{a++;}
(3).params 可变参数
将参数列表跟可变参数数组类型一致的元素都当成数组的元素处理。
必须是最后一个元素,只能加一个。
Test(“成绩”,90,23,32);
void Test(String s,params int[] num){};

7).重载

方法名称相同,参数不同。
1.个数相同,类型不同。
2.类型相同,个数不同。
跟返回值没有关系。

4.面向对象 1).属性(get/set)

//这里是属性不是方法
private string name;
public string Name
{
//获取直接get
get{return name};
//给值的时候执行set
set{name=get};
}
public string Name{get;set;};

c.A = 1;
Console.WriteLine(c.A);
c.B = “12”;
Console.WriteLine(c.B);

2).静态和非静态

1.在非静态中,既可以有实例成员,也可以用静态成员;
2.在调用实例成员的时候,需要对象名.实例成员;
调用静态成员的时候,类名.静态成员名;
静态函数只能访问静态成员,不允许访问实例成员;
实例函数,都可以;
静态类中只允许有静态成员,不允许出现实例成员;
使用:
1.可以写成工具类,一次存储,反复使用;
2.静态类在整个项目中资源共享;
实例化----栈
静态-------地址栈-----数据堆
释放资源:GC(程序结束后,静态释放)

3).构造函数

1.构造函数没有返回值,也没有void;
2.与类名相同;
创建对象的时候会执行构造

4).new

1.在内存开辟一块空间;
2.在开辟空间中创建对象;
3.调用对象的构造函数进行初始化对象;

5).this

1.代表当前类;
2.类中显示调用本类的构造函数;:this()
public Class1(int a,string b) {
this.a = a;
this.b = b;
}
public Class1(int a) : this(a, “000”) {
}

6).析构函数

~Student()
{
};//释放资源

7).值类型/引用类型

1.值类型和引用类型在内存上存储上存储地方不一样
值类型:—栈
引用类型:string,自定义类型,数组;—堆
2.在值传递类型和引用传递类型的时候,传递的方式不一样;
值传递称值传递类型,引用传递称为引用传递类型;

8).字符串

1.字符串不可变性;
字符串存储之后就不可以改变,只能开辟存储新空间,进行重新指向;
产生的垃圾GC回收;
string s1=“zhang”;
string s2=“zhang”
地址一样
2.可以看错是一个char类的只读字符
s1[1];
字符串转成字符数组:
char[] ch=s1.ToCharArray();
字符数组转为字符串
s=new string(ch);
3.StringBuilder
4.创建计时器
Stopwatch sw=new Stopwatch();
sw.Start();
…
sw.Stop();
Console.WriteLine(sw.Elapsed);
5.常用函数
string Replace(str old,str new);//替换
string Substring(int index)//取子串,从index到结束,(index,length)从index到length长度
string
bool Contains(string str)//判断是否含有str
bool StartWith(string str)//是否str开始
bool EndsWith(string str)//是否str结束
int IndexOf(string str)//str第一次出现的位置;(str,index)从index开始第一次出现str的位置
LastIndexOf
Trim() //去掉前后空格
TrimStart()//前面
TrimEnd()//后面
bool IsNullOrEmpty()
string[] s={“1”,“2”};
string str=string.join(“!”,s);
split

9).继承

:
子类继承了父类的属性和方法,但是子类没有继承父类的私有字段;
子类并不会继承父类的构造函数,但是,子类会默认的调用父类的无参构造函数,创建父类对象,让子类可以调用父类成员;
如果父类写了一个构造之后,父类的默认就会被干掉,子类就调用不了了;
1.在父类重新写一个无参构造;
2.子类显示调用父类构造函数:base();
继承的特性:
1.继承的单根性,一个子类只有一个父;
2.继承的传递性;

10).new 子类隐藏父类同名函数

父类:
public new void Say(){
}
子类
public new void Say(){
Console.Writeline(“Hello”);
}
子类隐藏父类同名函数,要加关键字new;

11)里氏转换

1.子类可以赋值给父类:如果一个地方需要父类作为参数,我们可以给一个子类代替;
Person p=new Student();
2.如果父类中装了是子类对象,那么可以将这个父类强转为子类对象;
Student student=(Student)p;
3.类型转换
is :如果转换成功,返回true,不能false;
as:如果能转换返回对应的对象,不能返回Null;

5.集合 1).ArrayList

与数组区别:
1.长度可以改变;
2.类型任意;
提示:标记与java,c++有所不同的地方

注:VS快捷键
KeyValue
Ctrl+K+D快速对齐
Ctrl+R+E快速生成get,set
Ctrl+K+F快速格式化
Ctrl +B快速生成
Ctrl+U第一个变小写
Ctrl+D快速复制本行内容
Ctrl +F查找内容
Ctrl+H替换内容
Ctrl+G快速转到行和列
Ctrl+N新建
Ctrl+K+X插入片段
Ctrl +K+C注释
Ctrl+K+U取消注释
Ctrl +J智能提示
End行尾
Home(+箭头)行头
#region…#endregion折叠行
F12转到代码

提示:这里可以添加要学的内容

// An highlighted block
var foo = 'bar';

例如:

  1. 搭建 Java 开发环境
  2. 掌握 Java 基本语法
  3. 掌握条件语句
  4. 掌握循环语句

学习内容2

提示:这里可以添加要学的内容

// An highlighted block
var foo = 'bar';

例如:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

详细内容:

提示:这里可以添加要学的内容

Markdown
Text-to-HTML conversion tool
Authors
John
Luke

表格:
项目Value
电脑$1600
手机$12
导管$1
Column 1Column 2
centered 文本居中right-aligned 文本居右

提示:这里可以添加计划学习的时间


学习产出:

提示:这里统计学习计划的总量

例如:

  • 技术笔记 2 遍
  • CSDN 技术博客 3 篇
  • 习的 vlog 视频 1 个
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号