陈广C#入门学习笔记

作者在 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);
  }
  
  
 }
}
 
 
 
输入字符串,依次添加到数组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");
 }
 }
}
 
 
 
 
 
 
验证输入的是否为中文字
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="";//置空
   }
  }
 
 
 
 
 
 
 
打印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);
  }
 }
}
 
 
 
 
数组在此位引用赋值,在方法中数组中的值会改变,两次输入都是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+",");
  }
 }
}
 
 
 
 
静态关键字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);
 }
}
 
 
 
建立一个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="其他";
    
  }
 
 
 
 
 
 
类的构造,不同的参数使用对应的构造函数
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();
 }
}
//输出
我是类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
 
 
 
 
 
//virtual override 虚函数
张三开始工作  经理
李四开始工作  普通员工
王五开始工作  销售员
马六开始工作  财务员
梦七开始工作  秘书
C#基础 | 阅读 7385 次
文章评论,共1条
fanneysky(作者)
2008-04-25 21:15
1
void Button4Click(object sender, EventArgs e)
        {
            foreach (Control c in this.Controls)//创建一个Control类c,遍历该窗口下的所有控件this.Controls
            {
                listBox1.Items.Add (c.Name);//将控件的名字添加到listBox1里面,并显示出来。
                Control c1=c as Button;//如果实例c是否兼容于Btton,则返回对Button对象的引用并赋给c1,如果c与Button不兼容,则返回null.
                if(c1!=null)
                {
                    c1.Text=&quot;被改变的控件&quot;;
                }
                
            }
        }
游客请输入验证码
浏览19884次