当前位置:编程学习 > C#/ASP.NET >>

C#学习笔记--1

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=4;//system.int32
   long b;//system.int64
    b=a;//隐式转换
    console.writeline(a);
}
}

可以先对于上面设置的两个变量进行初始化,然后再进行输出操作。
显式转换就是这样子的:a=(int)b;

checked和unchecked操作符和语句:
在显式转换前面加入checked操作服。

在程序中有一句话:
messagebox.show("fashengyichu")能够弹出一个对相框。

这里还有一种感觉就是:
b=b+100;
b+=100;
这个时候最开始的初始化b为byte类型,所以这两句话是有区别的,上面第一句话在操作的时候是很容易出错的,修改的方式是:在右边的表达式上加入:
b=(byte)(b+100);
这个时候跟下面那句话就保持一致了。
而下面这句话,因为在右边的是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 this.controls)
{
   listbox1.items.add(c.name);
   control c1=c as button;
    if(c1!=null)
{
    c1.text="kkkkkkkkkkk";
}
}//强制类型转换的一个简单的例子。


属性:
class user
{
    private string m_name;
    private string m_易做图;
//
public void setname(string values)
{name=values;}
public string getname()
{
return name;
}
public void set易做图(string values)
{
    if (values==""||values=="")
{
    易做图=values;
}
else{
    console.writeline("性别只能为“男”或“女”");
}
}
public string get易做图()
{
    return 易做图;
}
   public name
{
get{
     return name;
}
set{
    name=values;
 }
public 易做图
{
   get{return 易做图}
   set{
    [if判断语句]
}
}
}
//
}
class property
{
   static void main()
{
    user zs=new user();
    zs.name=("张三");
    zs.易做图=("男");
    console.writeline("姓名:"+zs.getname+"性别:"+zs.get易做图)
 zs.name="张三";
    zs.易做图="男";
    console.writeline("姓名:"+zs.name+"性别:"+zs.易做图)
}

属性的调用跟类的字段的调用是一模一样的。
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[10];
a[0]=new arrclass("");
a[1]=new arrclass("");
a[2]=new arrclass("");
console.writeline("a[0]="+a[0].name);
console.writeline("a[1]="+a[1].name);
console.writeline("a[2]="+a[2].name);
}
}

要定义一个索引器就必须要this,还要加上中括号。

索引器只需要申明一个实例,而类需要声明多个实例。

哈希表:【容器】
key通常可用来快速查找。
给hashtable里面加值是通过add来进行操作的。

代码:
Class indexclass//带索引器的类。
{
   private hashtable name=new hashtable();
   public string this[int index]
{
   get{return name[index].tostring();}
   set{name.add(index,value);}
}
}
  class test
 {
   static void  main()
{
//索引器的使用。
   indexclass b=new indexclass();
   b[100]="zghan";
   b[200]="kkkkk";
   b[300]="ksldjflksdj";
console.writeline("jjjj"+b[100]);
*******//此处略去三个字!
}
}

索引器和数组的比较:
类数组的 存放 :
索引器有get访问器和set访问器。没有存放变量的地方。
索引器允许重载,

Int[] a=new int[3]
a[0]=1;
a[1]=2;
a[2]=3;//数组的存放。

class arrclass
{}
......
arrclass[]a=new arrclass[3];
a[0]=new arrclass();
a[1]=new arrclass();
a[2]=new arrclass();
//类数组的 存放。

this的关键作用:索引器只能使用this。

public int this[string aname]
{
  get{
      
}
  set{

}
}


索引器不能被声明为静态的。

代码实例:
  Using system;
&nb

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,