C#入门笔记
来源:互联网 发布:淘宝图书代理 编辑:程序博客网 时间:2024/05/21 17:15
第一阶段 Lesson 4 C#的入门 2
一、 注意点 2
二、 经验 3
第一阶段 Lesson6 C# 入门1 11.26 4
① 注意事项( 在C#中,string是基本数据类型 4
② 面向对象有四个特性 4
③ 什么是对象? 4
④ 类是什么?? 4
⑥ C#的命名规范: 5
⑦ C#数据类型分类 6
⑧ 参数传递.(值传递,引用传递) 6
⑨ 类(类有属性(特征)和方法(行为))和对象的关系? 6
l 函数重载overload 和override 的区别? 7
l 函数重载的注意事项: 7
² this关键字使用 8
第一阶段 Lesson7 C# 入门2 11.28 8
² C#的重写和Java的不一样,哪里不一样? 8
² 命名空间 namespace 8
1) 命名空间的使用方法 8
2) 可以解决两个问题: 9
² 命名空间的使用(using) 9
1) using 就是导入命名空间.. 9
2) using可以释放资源(实现释放资源接口的类才可以用..) 9
² Static(静态)(重点) 10
1) 类有两种:(静态,非静态) 10
2) 为什么静态成员不可以引用非静态成员???而实例成员可以引用静态的和实例成员???? 10
² 我们什么时候用static呢??? 10
1) 为什么主函数要用静态的呢?? 11
² Java和C#的不同; 11
² 编程经验指导(重要) 11
1) 默认构造函数要手动写出来,为什么? 11
2) 静态成员要少用.能不用尽量不用.(理由:生命周期太长.会占内存) 12
3) return "name:"+name 的原理 12
4) 有一个是面试比较喜欢考的: 14
第一阶段 Lesson 4 C#的入门
一、注意点
主要有以下几点应该注意一下:
C# 中tab是一个非常有用的键,tab键可以让我们快速的补全代码,增加了编程的效率
eg:cw+两下tab 则是输出 Console.WriteLine();
if + 两下tab 则是整个if的条件还有if(true){}
for+两下tab 则跳出 for(int i=0,i<length,i++){}
二、经验
1,在C#中 ,只要有小数点的都认为是double类型..
除非1.0f 这种是float
int a = 1.0; 这个就出错了,
double无法隐式的转换成int所以出错
2,char->int->float->double 隐式类型转换只能按照这个顺序
如果想从double转换成int要用到显式强转
int a = (double)1.0;
3,这个是一个小技巧,很实用.
如果你的代码个是很乱,可以去掉最外面的一个} 然后在加上去
代码就会自动对齐了
int a = 0;
int b = 1;
string str = "daf";
//比如这种很乱的
4,+号:
(1),连接运算符 +号左右两边操作数,有一个为字符串类型
(2) ,算数运算符 +号两边的操作数,都是数字
3+3+"3" ="63"
3+"3"+3 = "333"
"3"+3+3="333"
5,C#的输出方法有两种,
(1),像Java一样的输出.
(2),特有的方法..类似C++和C语言
1,Console.WriteLine("afsd"+a+"fsd");
2,Console.WriteLine("{0}+{1}={2}",a,b,(a+b));
最好用这个
6,{N}这个叫格式字符串
\r ..这种叫转义字符
" "中除了这两个.其他都是一模一样的输出
7,运算符
(1),算数运算符:
%,求余 自反赋值运算符 ++,=+...
(2),逻辑运算符:
&,|,! &&,|| (结果是bool类型)
(3),关系运算符:
>,<,==,!=... (结果是bool类型)
7%2 = 1 ; -7%2=-1; 7%-2 = 1;
看被除数的符号,余数和被除数的符号一样
&与&&的区别,
&所有条件都要算,&&称为短路&,前面为假的便不算后面的
8,这一点是和Java,c,c++有区别的一点 应该注意
(1),switch(string ,int ,char) switch的条件只能是这三个类型
(2),case后面有语句,switch中如果没有break,则出错
(3),如果case后面不加语句,则可以叠加在一起,穿透下去
switch(a){
case 1: cw("1111111111");break;
case 2:case3: cw("2222233333");break;
}
第一阶段 Lesson6 C# 入门1 11.26
① 注意事项( 在C#中,string是基本数据类型
② 面向对象有四个特性
1,可维护性
2,可扩展性
3,灵活性
4,可复用性
③ 什么是对象?
万事万物皆为对象.
类名 对象名= new 类名();
④ 类是什么??
类是具有相同属性与共同行为对象的集合.
class 类名{
属性;
方法;
}
C#如果没制定public还是private还是protected就默认为私有...
⑤ 函数是什么??
函数是具有特定功能的代码的集合...
实参:函数调用时的参数
形参:函数定义时的参数
⑥ C#的命名规范:
1,帕斯卡命名:类名,命名空间,属性名,方法名
2,骆驼命名: 参数列表,.字段,局部变量
string namel
int num;
这种是字段....Java中没有字段这种说法..
⑦ C#数据类型分类
1,值类型,结构(基本数据类型),枚举
2,引用类型...不是值类型就是引用类型
⑧ 参数传递.(值传递,引用传递)
1,值传递(把复印件传递过去)
2,引用传递(把原件传递过去)
⑨ 类(类有属性(特征)和方法(行为))和对象的关系?
1,类是对象的模板
2,对象是类的实例
⑩ 函数的重载overload
函数名相同,参数类表(参数个数和参数类型)不同
1,与返回类型无关.
2,与变量名无关.
l 函数重载overload 和override 的区别?
重写override:是指子类重新定义父类的虚函数的做法。
重载overload:是指允许存在多个同名函数,而函数签名不同(参数表不同:或许参数个数
不同,或许参数类型不同,或许两者都不同)。重载的概念并不属于“面向对象编程”
----------
eg:
void Show(){}; Show
void Show(int a ){}; Show int
void Show(int b){}; Show int
int Show(){}; Show
void Show(int a,double b){}; Show int double
看右边这个.一样的就不可以是重载函数.....
l 函数重载的注意事项:
1,当没有自定义一个构造函数时,CLR会默认给一个无参的构造函数
2,当有自定义一个构造函数,CLR就不会给默认的构造函数
3,无参的构造函数最好自己显式写一个..(不然就存在隐患..)
² this关键字使用
1,解决局部变量与属性同名问题
2,public A():this("xxx",200){}
public A(string name,int blood){初始化}
可以使不完整的构造函数调用完整的构造函数..
第一阶段 Lesson7 C# 入门2 11.28
² C#的重写和Java的不一样,哪里不一样?
C#的重写格式是这样的 override重写关键字...
public override string ToString(){
.......;
}
² 命名空间 namespace
nagespace知识一个逻辑结构,就是不像Java那样,是目录结构(在硬盘中可以目录结构的..就是一层一层目录的看) 而C#的话,就没像Java那样,在硬盘中找不到具体概念......
1) 命名空间的使用方法
namespace 命名空间名(帕斯卡命名规范){
}
一个完整的类名是这样的....命名空间名.类名
2) 可以解决两个问题:
1,就是类名相同问题
2,就是类访问安全问题..
² 命名空间的使用(using)
有了命名空间.我们就要有使用的方法..using
1) using 就是导入命名空间..
using System; 相当于Java的lang包
using System.collection.Generic; //泛型
using System.linq ; 这个很重要,,Linq
using System.Text; //格式转换..正则表达式.
2) using可以释放资源(实现释放资源接口的类才可以用..)
比如Java中的流就是资源..using相当于流中的close()
使用方法:
using(资源){
操作;
}
² Static(静态)(重点)
今天教的最重要的就是静态的使用Static
static(在程序加载时就导入的..就是程序运行前就导入 了)
1) 类有两种:(静态,非静态)
1,static成员.
2,非static成员(实例成员)
2) 为什么静态成员不可以引用非静态成员???而实例成员可以引用静态的和实例成员????
每当一个程序要运行前,程序就会先导入static成员,然后在导入实例成员,所以静态方法不能引用非静态的方法...因为那个时候还没有实例成员,要怎么引用呢????
但是实例成员可以引用静态成员的..因为那个时候静态成员已经存在了...不是吗???
但是我们应该清楚一个问题??
² 我们什么时候用static呢???
1,要让多个实例对象共享的数据.考虑用静态
2,该执行方法与实例对象无关,可以考虑用...
1) 为什么主函数要用静态的呢??
直接用类名便可调用主函数,所以这样就不用创建一个对象才能调用主函数...
方便于编译器的使用...所以主函数用静态的..
² Java和C#的不同;
1,Java的public class的类名要和文件名一样才可以用..而C#不用这样
2,Java 的包(package)是目录结构的,而C#的是逻辑结构(就是只是一个概念.无法在具体中查看到,Java的可以在文件目录结构中看到..)
² 编程经验指导(重要)
1) 默认构造函数要手动写出来,为什么?
在定义构造函数时,做好把默认构造函数显式的写出来,因为这样客户调用无参的构造函数也不会出错.(理由:自定义的构造函数,系统就不会默认给一个无参的构造函数)
2) 静态成员要少用.能不用尽量不用.(理由:生命周期太长.会占内存)
3) return "name:"+name 的原理
这个字符串相加的最好不怎么用.因为占内存...
(理由:string不允许被修改-->常量,所以要修改的时候,是要在创建一个新的字符串,然后把地址给对象. string是一个基本数据类型.但是它也是一个类..唯一的一个类外...)
创建的顺序:
1,创建字符串的值
2,给字符串对象地址值(在堆中的地址)
代码在电脑操作中的实际流程...
4) 有一个是面试比较喜欢考的:
- c#入门笔记
- C#入门笔记
- c#入门经典笔记
- C# 入门笔记(脚本)
- C#入门 错误笔记
- 《C#数据库入门经典笔记》
- c#经典入门--学习笔记
- c#经典入门--学习笔记
- c#入门经典笔记chapter05
- C#入门学习笔记之一
- c# 5.0入门经典笔记
- C#学习笔记(一)-- 入门的困惑
- 《C#入门经典》学习笔记(变量)
- 《C#入门经典》学习笔记(函数)
- 《C#入门经典》学习笔记(泛型)
- c#经典入门学习笔记-定义集合
- c#经典入门学习笔记-定义集合
- C#入门经典---Windows笔记(1)
- C#酒店管理重要知识点总结
- 调用Android相机拍照,解决了拍照时候内存溢出溢出的问题
- MTK6575 量产软件修改信息
- C#连接SQL数据库
- Linux高级程序进程管理
- C#入门笔记
- Eclipse 修改编辑字体大小
- sdfsdfsdfsd sf
- 为你写诗
- NYOJ 173 Quicksum
- boost::format(字符串格式化库)
- 【Cocos2d-X开发学习笔记】第02期:渲染框架之节点类(CCNode)的使用
- php中explode与split的区别
- 【C语言】五子棋胜负判定算法及源代码