wawa 发表于 2009-12-4 09:05:25

学习ASP.NET需求的基本的c#知识

微软的实例教材中讲了三种语言:c#、vb   、Jscript,为了让大家过一把新东西隐,我们还是学c#吧。这个最好有一点c++基础。   
不过没有也没有关系,大不了多费点力了。   
任何一门语言都有两部分:   
数据+语法+算法   
数据是用来表示信息的,语法是来控制的。算法说白了就是人们总结的一些解决问题的思维方式。到于数据吧,多了自然有数据结构了,然后就出来了什么查询、插入、修改什么的。         
1.存储数据当然要用到变量了,现在就来讲一下c#的申明方法!   
通常方法是:         
      类型+变量名         
int   x         //定义一个整形变量   
string   name,pwd;   //定义两个字符性变量   
object   x;       //定义一下对象   
object   obj=new   object();//基于某一个对象创建一个实例   
public   string   x;//给字符变量加一个类型修饰符,让所有用户均能访问         
说明一下:   
在申明变量时,对类型单词象int   string   object   都要用小写,因为c#是严格区分大小写的.用INT   x;定义变量就错了。   
我们还是来两个程序看看:   
/*   学会变量的申明方法      
      create   by   vagrant   */   
    using   System;   
    class   Test   
    {   static   void   Main()   
      {   int   x=3;   
          Console.WriteLine("x={0}",x);   
          string   name="vagrant";   
          string   pwd="197926";   
          Console.WriteLine("your   name   is   :{0};pwd   is   {1}",name,pwd);   
          object   y;   
          y=x;//显式转换   
          Console.WriteLine("y={0}",y);   
      }   
    }      
2.向浏览器发送字符:   
上面讲到的是在C#中用System.Console.WriteLine输出变量的值,但在ASP.NET还是要用到Response对象的Response.Write("char")方法,不过此时不可省掉括号.   
例:   
      <%@   language="C#"   %>   
      <%   string   name;   
      name="vagrant";   
      Response.Write("you   name   is   "+name);   
      %>         
3.访问索引属性的值(以表单中元素为例)   
      学过asp的朋友都知用Requst.Form("对象名")提取表单对象的值.但是在asp.net应用Request.QueryString["name"]提取.         
4.申明索引属性   
在asp.net中我们要学会事件编程概念与索引指示器。通过索引指示器我们可以象数组那样访问类的数据信息的方法。还是我们先来构造一个简单的例子:   
using   System;   
class   Team   
{            
string[]   s_name=new   string{"vagrant","jack","rose"};//定义类的一个域,然后写构造子函数,使得外类能通过索引访问    
      public   string   this//访问索引申明   
{   
get   {   
return   s_name;//提供外类读的权力   
          }   
          set   {   
            s_name=value;//提供外类写的权力   
          }   
}   
}   
class   Test   
{   
public   static   void   Main(){   
                  Team   t1=new   Team();//创建一个Team类的实例   
          for(int   i=0;i<3;i++)   
      Console.WriteLine(t1);//通过索引指示器访问实例的数据信息   
            }   
}   
5.定义并初始化数据   
  当我们在处理批量数据常用到数组,定义数组要考虑到三个问题:类型,数据名,维数   
我还是以一维数据来说吧,毕竟常用的就是一维数据。   
定义数组:   
string   studentname[]=new   string;   
初始化:   
  方法一.   
      studentname="vagrant";   
                studentname="jack";   
                ........   
      方法二.   
            int[]   sex=new   int{0,1};//0代表男,1代表女         
这很好理解我就不解释了。         
6.结构与枚举   
 我之所以把结构与枚举放在一起来讲是因为这两者有相似之处又有不同之处。   
    结构:一系列相关的信息组成单一实体。象通讯录通常包括:姓名、电话、地址等。   
    枚举:逻辑上密不可分的一系列数据。比方星期有一到七。但星期一到星期天逻辑上密不可分。   
这两者是有不同的,结构是数据集合,而枚举每次只能取其中一个。结构与枚举都是数据结构类型中的一种。   
定义结构数据类型:   
            struct   PhoneBook   {   
                        public   string   name;   
                        public   string   phone;   
                        public   string   address;   
}   
定义一个该结构类型的变量   
      PhoneBook   p1;   
给结构变量各个成员赋值   
      p1.name="vagrant";   
      p1.phone="88888888";   
      p1.address="wuhan";         
定义枚举数据类型,并赋值   
//定义一个枚举类型   
public   enum   MessageSize   {      
          Small   =   0,   
          Medium   =   1,   
          Large   =   2   
}      
//   创建一个枚举类型变量   
public   MessageSize   msgsize;      
//   给该变量赋值   
msgsize   =   Small;      
7.声明并使用方法   
  //   定义一个没有返回值的函数   
void   voidfunction()   {   
    ...   
}      
//   声明一个有返回值的子函数   
String   stringfunction()   {   
    ...   
          return   (String)   val;//(string)表明返回类型   
}      
//申明一个能计算的函数   
String   parmfunction(String   a,   String   b)   {   
    ...   
          return   (String)   (a   +   b);   
}      
//   使用函数   
voidfunction();   
String   s1   =   stringfunction();   
String   s2   =   parmfunction("Hello",   "World!");      
8.流程控制语句   
      在c#中流程控制语句与C++没有多大区别。只不过C#中加了一个foreach(vb程序员应该不会陌生).   
流程控制大不了有选择、循环。   
          if条件语句的用法:   
                      if(Requery.QueryString["name"]==null){   
                                          statement....   
                        }      
      当有太多选择时,常用switch语句   
      例   :      
                              switch   (Name)   {   
                                    case   "John"   :   
                                          ...   
                                        break;   
                              case   "Paul"   :   
                                    ...   
                                    break;   
                              case   "Ringo"   :   
                                    ...   
                                    break;   
                              default:   
                                    ...   
                                  break;   
                        }   
    循环语句通常有两种:   
                  a.for循环   
                      for   (int   i=0;   i<3;   i++){   
                        statement...   
                  }   
                  b.while循环   
                        int   i   =   0;   
                        while   (i<3)   {   
                              Console.WriteLine(i.ToString());//i.ToString()目的是i转化为字符串型   
                              i   +=   1;   
                        }   
9.异常处理   
      在编写程序时,我们常会出现一些事先不可预期的事情。比方用户的错误输入、内存不够、网络资源不可用、数据库无法使用等情况。所以我们应该用异常处理方法来处理这类问题。C#里所有的异常都为类的一个实例,这个类继承于System.Exception类   
  先来介绍一下抛出异常语句thow   
          throw   expression   
      这个语句是在计算表达式的值时产生的一个异常            
      异常处理语句:   
      try是用来捕捉块执行过程中发生的异常   
    cathc是用来处理该异常的。   
 通用方法:   
try   {   
          //可能抛出异常的代码   
}   catch(OverflowException   e)   {   
          //   捕捉一个详细的异常   
}   catch(Exception   e)   {   
          //   捕捉一个通常的异常   
}   finally   {   
          //   执行一个没有异常的代码   
}   
看一个贝贝写的处理数据库联接出错的异常:   
try      
                        {                                    
                                  OleDbConnection   conn   =   getConn();         //getConn():得到连接对象      
                                  OleDbDataAdapter   adapter   =   new   OleDbDataAdapter();      
                                  string   sqlstr="select   id,title,author,pic,hits,posttime   from   notes   order   by   posttime   desc";      
                                  mydataset=   new   System.Data.DataSet();      
                                  adapter.SelectCommand   =   new   OleDbCommand(sqlstr,   conn);      
                                  adapter.Fill(mydataset,"notes");               
                                  conn.Close();      
                        }      
                        catch(Exception   e)      
                        {      
                                  throw(new   Exception("数据库出错:"   +   e.Message))         
                        }         
10.字符串处理   
      在c#中string为引用类型,所以可以用联接,截断   
 看了下面这个实例就知道了!   
//   使用字符串   
String   s1;   
String   s2   =   "hello";   
s2   +=   "   world";   
s1   =   s2   +   "   !!!";      
//   使用StringBuilder类的Append方法   
StringBuilder   s3   =   new   StringBuilder();   
s3.Append("hello");   
s3.Append("   world");   
s3.Append("   !!!");      
11.事件处理   
      事件是类向外界发送通知的成员。   
 先还是看一个事件处理代表例子:   
 void   MyButton_Click(Object   sender,   
                                          EventArgs   E)   {   
...   
}   
这个我也不大懂,听说看了MFC会比较清楚,如果哪位有这方面的经验,还望多多指教。   
12。声明一个事件   
  //   创建一个public事件   
   public   event   EventHandler   MyEvent;      
  //   为该事件定义一个方法   
  protected   void   OnMyEvent(EventArgs   e)   {   
                  MyEvent(this,   e);   
  }   
13.给事业加OR去处理该事件的方法   
      Control.Change   +=   new   EventHandler(this.ChangeEventHandler);   
      Control.Change   -=   new   EventHandler(this.ChangeEventHandler);   
14.类型转换   
      int   i   =   3;//定义一个整形变量并赋值   
    String   s   =   i.ToString();//整形转化为字符串型,用ToString()   
    double   d   =   Double.Parse(s);//字符串型转化为双精度型用Double.Parse(var);   
还有一些,我就不解释了,等我们有了一定的基础再深究吧。反正了解了这一些对后面的常用问题处理还是没有问题的。   

wawa 发表于 2009-12-4 09:11:09

C# 将不可避免地崛起,在Windows平台上成为主角,而JAVA将在UNIX、Linux等平台上成为霸主,C++ 将继续在系统软件领域大展拳脚。非常有意思的是,这些语言的语法极其接近,因为JAVA和C# 都是由C++发展而来的。其他的开发工具当然还会在相当长的时间里继续他们的旅程,不过在市场份额上,将不可避免地受到冲击。
页: [1]
查看完整版本: 学习ASP.NET需求的基本的c#知识