知识大全 C#学习笔记(一)
Posted 索引
篇首语:任何你的不足,在你成功的那刻,都会被人说为特色。所以,坚持做你自己。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#学习笔记(一)相关的知识,希望对你有一定的参考价值。
C#学习笔记(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
finalize方法:终结器
实现了终接器会大大的降低程序的性能
释放模式:【非托管资源释放】
手动释放dispose()方法或者close()方法 True非托管资源释放或者是托管资源释放【我们的类包含了其他 类 这个时候我么就可以在这里对其进行释放 而一般情况下 托管资源是被垃圾回收站回收的 】 阻止finalize的调用
自动释放(finalize()方法 false非托管资源释放)
public class myresource:IDisposable
private bool disposed=false;
public void dispose()
public void close()
~myresource()
private void dispose(bool disposing)
判断句//
类的修饰符:
访问控制修饰符;[包括了:default;public;private;internal;protected;protected internal ]
Class mod
void defaultMethod();
console writeline( );
//对于方法的调用是先实例化 然后再进行调用:
Mod mod=new Mod();//实例化
mod defaultMethod();//调用过程
两个类要能够相互可见的话可以将这两个 类放在同一个命名空间下面
类专用修饰符:
sealed:不能被继承的类;
partial:能声明在不同的文件中的类
类型的转换:
隐式转换:
显式转换:
代码:
class conversions
static void main()
int a= ;//system int
long b;//system int
b=a;//隐式转换
console writeline(a);
可以先对于上面设置的两个变量进行初始化 然后再进行输出操作
显式转换就是这样子的:a=(int)b;
checked和unchecked操作符和语句:
在显式转换前面加入checked操作服
在程序中有一句话:
messagebox show( fashengyichu )能够弹出一个对相框
这里还有一种感觉就是:
b=b+ ;
b+= ;
这个时候最开始的初始化b为byte类型 所以这两句话是有区别的 上面第一句话在操作的时候是很容易出错的 修改的方式是:在右边的表达式上加入:
b=(byte)(b+ );
这个时候跟下面那句话就保持一致了
而下面这句话 因为在右边的是byte类型的常量 所以就十分直接的隐式转换成了byte类型了
引用类型的转换:
CLR允许强制的转化
Fruit f=new Apple();//直接说明了子类可以被强制转换成为自己的父类
而要强调的是父类不能转换成任何一个子类
要想确切的知道一个对象的类型可以调用gettype()方法
type t=f gettype();//*********
Apple a=(Apple)f;//类型转换的方式
也可以在输出的语句中对于参数中的对象进行转换
用is操作符:
console writeline(f is fruit);
console writeline(f is apple);
console writeline(a is fruit);
console writeline(a is apple);
运行的结果是:
True;
false;
true;
true;
这里我们知道了在使用is操作符的时候只会打印输出bool值 也就是true和false
as的意义:比方说:apple a=f as apple;//这里说明的是如果f兼容与apple 那么a的返回值就是true 反之就是false 这样下面的判断语句就会用判断表达式:a!=NULL
foreach循环 ??????
controls属性表示的是返回值是一个集合
foreach(control c in ntrols)
ems add(c name);
control c =c as button;
if(c !=null)
c text= kkkkkkkkkkk ;
//强制类型转换的一个简单的例子
属性:
class user
private string m_name;
private string m_sex;
//
public void setname(string values)
name=values;
public string getname()
return name;
public void setsex(string values)
if (values== ||values== )
sex=values;
else
console writeline( 性别只能为 男 或 女 );
public string getsex()
return sex;
public name
get
return name;
set
name=values;
public sex
getreturn sex
set
[if判断语句]
//
class property
static void main()
user zs=new user();
zs name=( 张三 );
zs sex=( 男 );
console writeline( 姓名: +zs getname+ 性别: +zs getsex)
zs name= 张三 ;
zs sex= 男 ;
console writeline( 姓名: +zs name+ 性别: +zs sex)
属性的调用跟类的字段的调用是一模一样的
static属性:只能访问静态的
弹出对话框的上面就是Using system windows forms;
年龄属性应该根据生日生成一个动态的字段
private static int m_logincount;
public user()
m_logincount++;
public static int logincount
get
return m_logincount;
//只读属性
索引器:
类似于属性 索引器被称为 有参属性
class arrclass
private readonly string name;
public arrclass(string name)
this name=name;
public string name
get(return name;)
class test
static void main()
arrclass[] a=new arrclass[ ];
a[ ]=new arrclass( );
a[ ]=new arrclass( );
a[ ]=new arrclass( );
console writeline( a[ ]= +a[ ] name);
console writeline( a[ ]= +a[ ] name);
console writeline( a[ ]= +a[ ] name);
要定义一个索引器就必须要this 还要加上中括号
索引器只需要申明一个实例 而类需要声明多个实例
哈希表:【容器】
key通常可用来快速查找
给hashtable里面加值是通过add来进行操作的
代码:
Class indexclass//带索引器的类
private hashtable name=new hashtable();
public string this[int index]
getreturn name[index] tostring();
setname add(index value);
class test
static void main()
//索引器的使用
indexclass b=new indexclass();
b[ ]= zghan ;
b[ ]= kkkkk ;
b[ ]= ksldjflksdj ;
console writeline( jjjj +b[ ]);
*******//此处略去三个字!
索引器和数组的比较:
类数组的 存放 :
索引器有get访问器和set访问器 没有存放变量的地方
索引器允许重载
Int[] a=new int[ ]
a[ ]= ;
a[ ]= ;
a[ ]= ;//数组的存放
class arrclass
arrclass[]a=new arrclass[ ];
a[ ]=new arrclass();
a[ ]=new arrclass();
a[ ]=new arrclass();
//类数组的 存放
this的关键作用:索引器只能使用this
public int this[string aname]
get
set
索引器不能被声明为静态的
代码实例:
Using system;
using systemcollections;
//姓名 课程id 成绩
class coursescore
private string name;
private int courseid;
private int score;
public coursescore(string name int courseid int score)
this name=name;
useid=couseid;
this score=score;
public string name
get
set
class coursescoreindexer
private arraylist arrcoursescore;
public couresescoreindexer()
arrcoursescore=new arraylist();
public int this[string name int courseid]
get
foreach(coursescore cs in arrcoursescore)
if (cs name==name$$urseid==courseid)
return cs score;
return ;
set
arrcoursescore add(new coursescore(name courseid value))
public arraylist this[string name]
get
class Test
static void main()
coursescoreindexer csi=new coursescoreindexer();
csi[ ]= ;
console writeline(csi[ ]);
console wroteline( chengjiwei: )
现在将的是C#程序语言的规范:
bitarray类;
可以存放任何长度的
左移相当于乘以 ;右移相当于除以
索引器的返回值是bool值 所以在实现的时候最开始的一句话是:
public bool this[int index]
>>符号表示的是往右移动位数;
<<符号表示的是往左移动位数;
&运算符:都是 的情况下才会最终的结果是
~运算符在C#中是按位求补的操作 【 : ; : 】
cha138/Article/program/net/201311/12906相关参考
C#索引器实战开发学习笔记 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这是使用C#开发智能手
实战开发C#索引器学习笔记[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 备注: 
实战开发C#索引器学习笔记[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 简单说来所谓索引
ASP.NET学习笔记之c#必会 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
知识大全 Spring Integration学习笔记(一)
SpringIntegration学习笔记(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
PL/SQL学习笔记(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 基本概念 &
JAVA虚拟机实例学习笔记一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 编译顺序
知识大全 ORACLE性能诊断―学习statspack笔记(一)
ORACLE性能诊断―学习statspack笔记(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
SDL学习笔记一图片和字体显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 偶然得知SDL这个
新手上路:Oracle分析函数学习笔记一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 环境wi