作者在 2008-04-22 23:34:06 发布以下内容
输入一个数组的长度,将该数组从0开始梯增赋值。
using System;
class SetArr
{
public void PrintArr(int ArrLength)
{
int[] arr=new int[ArrLength];
for(int i=0;i<ArrLength;i++)
arr[i]=i;
Console.WriteLine("The array's vale is:");
for(int i=0;i<ArrLength;i++)
Console.WriteLine("arr[{0}]={1}",i,arr[i]);
}
}
class Test
{
static void Main()
{
SetArr ness=new SetArr();
int j=1;
while(j>0) //输入0则退出
{
Console.WriteLine("Please enter the array's length!");
j=Int32.Parse(Console.ReadLine());//读一行,并将其转化为Int32类型
ness.PrintArr(j);
}
}
}
class SetArr
{
public void PrintArr(int ArrLength)
{
int[] arr=new int[ArrLength];
for(int i=0;i<ArrLength;i++)
arr[i]=i;
Console.WriteLine("The array's vale is:");
for(int i=0;i<ArrLength;i++)
Console.WriteLine("arr[{0}]={1}",i,arr[i]);
}
}
class Test
{
static void Main()
{
SetArr ness=new SetArr();
int j=1;
while(j>0) //输入0则退出
{
Console.WriteLine("Please enter the array's length!");
j=Int32.Parse(Console.ReadLine());//读一行,并将其转化为Int32类型
ness.PrintArr(j);
}
}
}
输入字符串,依次添加到数组arr中,并打印出来,每次输入一个字符串,只添加到数组中的一项,输入end结束循环。
using System;
using System.Collections;
class ArrList
{
static void Main()
{
ArrayList arr=new ArrayList();//用到System.Collections类
string str1;
while(true)
{
Console.WriteLine("please enter a string.");
str1=Console.ReadLine();
if(str1=="end")
break;
arr.Add(str1);
Console.WriteLine();
for(int i=0;i<arr.Count;i++)
Console.Write("{0} ",arr[i]);
Console.WriteLine("\n");
}
}
}
using System.Collections;
class ArrList
{
static void Main()
{
ArrayList arr=new ArrayList();//用到System.Collections类
string str1;
while(true)
{
Console.WriteLine("please enter a string.");
str1=Console.ReadLine();
if(str1=="end")
break;
arr.Add(str1);
Console.WriteLine();
for(int i=0;i<arr.Count;i++)
Console.Write("{0} ",arr[i]);
Console.WriteLine("\n");
}
}
}
验证输入的是否为中文字
void Button1Click(object sender, EventArgs e)
{
string s;
s=textBox1.Text;
foreach(char r in s)
{
int i=(int)r;
if(i<0x4e00||i>0x9fa5)// 中国字的UNICODE 代码在0X4E00--0X9FA5之间
MessageBox.Show("名字非法");
textBox1.Text="";//置空
}
}
{
string s;
s=textBox1.Text;
foreach(char r in s)
{
int i=(int)r;
if(i<0x4e00||i>0x9fa5)// 中国字的UNICODE 代码在0X4E00--0X9FA5之间
MessageBox.Show("名字非法");
textBox1.Text="";//置空
}
}
打印0-255ASCII码
using System;
class asc
{
static void Main()
{
for(int i=0;i<255;i++)
{
if(i%10==0)
Console.WriteLine();
Console.Write("{0,3}:{1,-3}",i,(char)i);
}
}
}
class asc
{
static void Main()
{
for(int i=0;i<255;i++)
{
if(i%10==0)
Console.WriteLine();
Console.Write("{0,3}:{1,-3}",i,(char)i);
}
}
}
数组在此位引用赋值,在方法中数组中的值会改变,两次输入都是1,2,3,4,5
using System;
class Method2
{
static void SetArr(params int[] values) //多个未确定参数,用到params关键字
{
for(int i=0;i<values.Length;i++)
{
values[i]=i+1;
}
foreach(int i in values)
{
Console.Write(i+",");
}
Console.WriteLine();
}
static void Main()
{
int[] values=new int[] {11,22,33,44,55} ; //数组赋值方法,另一种为:
SetArr(values); //int[] values={11,22,33,44,55}
foreach(int i in values)
{
Console.Write(i+",");
}
}
}
class Method2
{
static void SetArr(params int[] values) //多个未确定参数,用到params关键字
{
for(int i=0;i<values.Length;i++)
{
values[i]=i+1;
}
foreach(int i in values)
{
Console.Write(i+",");
}
Console.WriteLine();
}
static void Main()
{
int[] values=new int[] {11,22,33,44,55} ; //数组赋值方法,另一种为:
SetArr(values); //int[] values={11,22,33,44,55}
foreach(int i in values)
{
Console.Write(i+",");
}
}
}
静态关键字static的知识。因为 class A中 属性i定义了static,在对象a和b中都会对A中的i值起影响,最后输出为2。 不能用对象访问static定义的i,要用类访问。 如:A.i才可以,
而a.i或b.i就是错误的。 如果i未定义static, 那么不能用类A来访问i,要用对象a或b来访问。
using System;
class Method
{
class A
{
public static int i=0;
public void addi()
{
i++;
}
}
static void Main()
{
A a=new A();
a.addi();
A b=new A();
b.addi();
Console.WriteLine(A.i);
}
}
class Method
{
class A
{
public static int i=0;
public void addi()
{
i++;
}
}
static void Main()
{
A a=new A();
a.addi();
A b=new A();
b.addi();
Console.WriteLine(A.i);
}
}
建立一个label和一个text控件,在label中显示输入的是数字字母或者其他
Isletter判定字符是否为字母 IsDigit是否为数字 IsLower是否为小写等等,可以在MSDN中查找关键字 char 结构 方法找到相关知识。
void TextBox1KeyPress(object sender, KeyPressEventArgs e)
{
char c=e.KeyChar;
if(char.IsLetter(c))
label1.Text="字母";
else if (char.IsDigit(c))
label1.Text="数字";
else
label1.Text="其他";
}
{
char c=e.KeyChar;
if(char.IsLetter(c))
label1.Text="字母";
else if (char.IsDigit(c))
label1.Text="数字";
else
label1.Text="其他";
}
类的构造,不同的参数使用对应的构造函数
using System;
class A
{
public int i;
public string s;
public A()
{
Console.WriteLine("第1构造器");
i=100; //如类的属性中存在赋值,将赋值在无参构造函数里
s="字母"; //实现,然后在其他的构造函数里引用this()关键字,
} //能有效的减少代码冗余.
public A(int i):this()
{
Console.WriteLine("第2构造器");
this.i=i;
}
public A(string s):this()
{
Console.WriteLine("第3构造器");
this.s=s;
}
public A(int i,string s):this()
{
Console.WriteLine("第4构造器");
this.i=i;
this.s=s;
}
}
class Test
{
static void Main()
{
A a0=new A();
Console.WriteLine("i= "+a0.i);
Console.WriteLine("s= "+a0.s);
A a1=new A(3);
Console.WriteLine("i= "+a1.i);
Console.WriteLine("s= "+a1.s);
A a2=new A("我是谁");
Console.WriteLine("i= "+a2.i);
Console.WriteLine("s= "+a2.s);
A a3=new A(3,"我是谁");
Console.WriteLine("i= "+a3.i);
Console.WriteLine("s= "+a3.s);
}
} /*当类B继承类A,如果类A没有无参和有参构造器,在编译的时候会自动生成无参构造器,如果类A带有参构造器,则不会生成无参构造器。类B如无构造器,也会生成无参构造器。当创建类B的一个对象时,无论对象是否带参,首先会调用类A的无参构造器,然后调用与B吻合的构造器,如A没有无参构造器,编译报错。如要访问基类的指定构造器,使用关键字:base([参数],[参数]) 列如: public B(int i):base(i);*/
using System;
class A
{
public int i;
public string s;
public A()
{
Console.WriteLine("第1构造器");
i=100; //如类的属性中存在赋值,将赋值在无参构造函数里
s="字母"; //实现,然后在其他的构造函数里引用this()关键字,
} //能有效的减少代码冗余.
public A(int i):this()
{
Console.WriteLine("第2构造器");
this.i=i;
}
public A(string s):this()
{
Console.WriteLine("第3构造器");
this.s=s;
}
public A(int i,string s):this()
{
Console.WriteLine("第4构造器");
this.i=i;
this.s=s;
}
}
class Test
{
static void Main()
{
A a0=new A();
Console.WriteLine("i= "+a0.i);
Console.WriteLine("s= "+a0.s);
A a1=new A(3);
Console.WriteLine("i= "+a1.i);
Console.WriteLine("s= "+a1.s);
A a2=new A("我是谁");
Console.WriteLine("i= "+a2.i);
Console.WriteLine("s= "+a2.s);
A a3=new A(3,"我是谁");
Console.WriteLine("i= "+a3.i);
Console.WriteLine("s= "+a3.s);
}
} /*当类B继承类A,如果类A没有无参和有参构造器,在编译的时候会自动生成无参构造器,如果类A带有参构造器,则不会生成无参构造器。类B如无构造器,也会生成无参构造器。当创建类B的一个对象时,无论对象是否带参,首先会调用类A的无参构造器,然后调用与B吻合的构造器,如A没有无参构造器,编译报错。如要访问基类的指定构造器,使用关键字:base([参数],[参数]) 列如: public B(int i):base(i);*/
静态构造器在类的静态成员初始化之后执行,在类的静态成员被引用之前执行,在类的任何实力成员被分配之前执行,在程序中,静态构造器只执行一次,静态构造函数不带任何参数也无任何修饰符,不能被重载,不能被调用,永远是私有的。
using System;
class A
{
public static int i=i;
static A()
{
Console.WriteLine("我是类A的静态构造器");
}
public A()
{
Console.WriteLine("我是类A的无参构造器");
}
}
class Test
{
static void Main()
{
A a=new A();
A a1=new A();
}
}
class A
{
public static int i=i;
static A()
{
Console.WriteLine("我是类A的静态构造器");
}
public A()
{
Console.WriteLine("我是类A的无参构造器");
}
}
class Test
{
static void Main()
{
A a=new A();
A a1=new A();
}
}
//输出
我是类A的静态构造器
我是类A的无参构造器
我是类A的无参构造器
垃圾释放的几种方法:手动释放(Dispose, Close),自动释放(Finalize)
using System;
class MyResource
{
private bool disposed=false;
public void Dispose()
{
Dispose(true);
}
public void Close()
{
Dispose(true);
}
~MyResource()
{
Dispose(false);
}
private void Dispose(bool disposing)
{
if(!this.disposed)//Disposed为false
{
if(disposing)//Dispose方法为true则调用Dispose方法
{
Console.WriteLine("此处调用对象引用的Dispose()方法");
}
Console.WriteLine("释放本身所用的非托管资源。");//如只有dispose为false则释放非托管。
disposed=true; //能多次的调用Dispose和Close资源。
if(disposing)
{
GC.SuppressFinalize(this);//禁止Finalize方法被调用。
}
}
}
}
class test
{
static void Main()
{
MyResource tx=new MyResource(); //由于没有显式调用Dispose方法,程序调用终结器里代码
//~MyResource, 即Dispose(fasle);
tx.Dispose(); //显式调用,即Dispose(true);
}
}
//try finally =using
class MyResource
{
private bool disposed=false;
public void Dispose()
{
Dispose(true);
}
public void Close()
{
Dispose(true);
}
~MyResource()
{
Dispose(false);
}
private void Dispose(bool disposing)
{
if(!this.disposed)//Disposed为false
{
if(disposing)//Dispose方法为true则调用Dispose方法
{
Console.WriteLine("此处调用对象引用的Dispose()方法");
}
Console.WriteLine("释放本身所用的非托管资源。");//如只有dispose为false则释放非托管。
disposed=true; //能多次的调用Dispose和Close资源。
if(disposing)
{
GC.SuppressFinalize(this);//禁止Finalize方法被调用。
}
}
}
}
class test
{
static void Main()
{
MyResource tx=new MyResource(); //由于没有显式调用Dispose方法,程序调用终结器里代码
//~MyResource, 即Dispose(fasle);
tx.Dispose(); //显式调用,即Dispose(true);
}
}
//try finally =using
//virtual override 虚函数
张三开始工作 经理
李四开始工作 普通员工
王五开始工作 销售员
马六开始工作 财务员
梦七开始工作 秘书
李四开始工作 普通员工
王五开始工作 销售员
马六开始工作 财务员
梦七开始工作 秘书