WebPage--上传下载


                //数据检查 begin
                string schType = string.Empty;//学校类型
                string gradeName = string.Empty;// 年级名称
                string subjectName = string.Empty;//科目名称  
                string videoName = this.txtName.Text.Trim();//视频名称
                string imgTrueName = string.Empty;
                schType = this.ddlSchool.SelectedValue.ToString().Trim();
                gradeName=this.ddlGrade.SelectedValue.ToString().Trim();
                subjectName = this.txtSubject.Text.Trim();
                videoName = this.txtName.Text.Trim();

                if (schType == "请选择" || gradeName == "请选择")
                {
                    Response.Write("<script>alert('请选择学校类型和年级!');</script>");
                    return;
                }
                if (subjectName=="")
                {
                    Response.Write("<script>alert('请输入视频对应的科目!');</script>");
                    return;
                }
                if (videoName == "")
                {
                    Response.Write("<script>alert('请输入视频的名称!');</script>");
                    return;
                }
                if ((this.fudFile.PostedFile.FileName == null) || (this.fudFile.PostedFile.FileName == ""))
                {
                    Response.Write("<script>alert('请选择需上传的视频文件!');</script>");
                    return;
                }
                if ((this.fudImg.PostedFile.FileName == null) || (this.fudImg.PostedFile.FileName == ""))
                {
                    Response.Write("<script>alert('请选择需上传的图片文件!');</script>");
                    return;
                }
                FileInfo fileTag = new FileInfo(this.fudFile.PostedFile.FileName);
                string fileType = fileTag.Extension;
                string fileName=fileTag.Name;// 文件物理名称
                if (fileType.ToLower() != ".flv")
                {
                    Response.Write("<script>alert('请确保您选择的是flv文件!');</script>");
                    return;
                }
                FileInfo imgFileTag = new FileInfo(this.fudImg.PostedFile.FileName);
                string imgFileType = imgFileTag.Extension;
                if (imgFileType.ToLower() != ".jpg" && imgFileType.ToLower() != ".bmp" && imgFileType.ToLower() != ".jpeg" && imgFileType.ToLower() != ".gif" && imgFileType.ToLower() != ".png")
                {
                    Response.Write("<script>alert('请确保您选择的是图片文件!');</script>");
                    return;
                }
                //数据检查 end

                //string physicalPath = this.Page.MapPath(@"./UploadFileFolder");
                string physicalPath = Server.MapPath("\\images\\UploadExperimentVideos").ToString();
                string imgPhysicalPath = Server.MapPath("\\images\\VideoImages").ToString();
                DateTime uploadTime = DateTime.Now;
                string year = DateTime.Now.Year.ToString();
                string month = DateTime.Now.Month.ToString();
                string date = DateTime.Now.Day.ToString();
                string hour = DateTime.Now.Hour.ToString();
                string minute = DateTime.Now.Minute.ToString();
                string second = DateTime.Now.Second.ToString();
                string fileTrueName ="video"+ year + month + date + hour + minute + second + fileType;//文件绝对名称
                string imgFileTrueName = "img" + year + month + date + hour + minute + second + imgFileType;//图片绝对名称
                string path_fileName = physicalPath + "/" + fileTrueName;
                string path_imgFileName = imgPhysicalPath + "/" + imgFileTrueName;

                if (File.Exists(path_fileName))
                {
                    File.Delete(path_fileName);
                }
                SqlParameter[] spl ={
                                        new SqlParameter("@schType",SqlDbType.VarChar,50), 
                                        new SqlParameter("@gradeName",SqlDbType.VarChar,50), 
                                        new SqlParameter("@subjectName",SqlDbType.VarChar,250),
                                        new SqlParameter("@videoTrueName",SqlDbType.VarChar,250),
                                        new SqlParameter("@videoName",SqlDbType.VarChar,250),
                                        new SqlParameter("@imgTrueName",SqlDbType.VarChar,250),
                                        new SqlParameter("@ret",SqlDbType.Int,4)
                                    };
                spl[0].Value = schType;
                spl[1].Value = gradeName;
                spl[2].Value = subjectName;
                spl[3].Value = fileTrueName;
                spl[4].Value = videoName;
                spl[5].Value = imgFileTrueName;
                spl[6].Direction = ParameterDirection.Output;
                Dbhelper.SQLHelper.GetDataTable("SQLCont", CommandType.StoredProcedure, spl);
                int ret=Convert.ToInt32(spl[6].Value.ToString());
                if (ret == 1)
                {
                    fudFile.PostedFile.SaveAs(path_fileName);
                    fudImg.PostedFile.SaveAs(path_imgFileName);
                    BindData();
                    Response.Write("<script>alert('视频上传成功!');</script>");
                    return;
                }
                if (ret == 3)
                {
                    Response.Write("<script>alert('视频上传重复!');</script>");
                    return;
                }
                else
                {
                    Response.Write("<script>alert('视频上传失败!');</script>");
                    return;
                }
\\按你的需求做适当修改

posted @ 2012-03-08 11:52 青蛙學堂 阅读(186) | 评论 (0)编辑 收藏

c# arrayList遍历

1、ArrayList定义

System.Collections.ArrayList类是一个特殊的数组(即动态数组)。

通过添加和删除元素,就可以动态改变数组的长度。

........................

详见网址:http://dalaoyer.com/article.php?id=377

posted @ 2012-03-08 10:28 青蛙學堂 阅读(22099) | 评论 (0)编辑 收藏

C# ArrayList的用法

System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。

一、优点

1. 支持自动改变大小的功能

2. 可以灵活的插入元素

3. 可以灵活的删除元素

4. 可以灵活访问元素

二、局限性

跟一般的数组比起来,速度上差些

三、添加元素

1.public virtual int Add(object value);

将对象添加到ArrayList的结尾处

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

内容为abcde

2.public virtual void Insert(int index,object value);

将元素插入ArrayList的指定索引处

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

aList.Insert(0,"aa");

结果为aaabcde

3.public virtual void InsertRange(int index,ICollectionc);

将集合中的某个元素插入ArrayList的指定索引处

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

ArrayList list2=new ArrayList();

list2.Add("tt");

list2.Add("ttt");

aList.InsertRange(2,list2);

结果为abtttttcde

四、删除

a)public virtual void Remove(object obj);

从ArrayList中移除特定对象的第一个匹配项,注意是第一个

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

aList.Remove("a");

结果为bcde

2.public virtual void RemoveAt(intindex);

移除ArrayList的指定索引处的元素

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

aList.RemoveAt(0);

结果为bcde

3.public virtual void RemoveRange(int index,int count);

从ArrayList中移除一定范围的元素。Index表示索引,count表示从索引处开始的数目

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

aList.RemoveRange(1,3);

结果为ae

4.public virtual void Clear();

从ArrayList中移除所有元素。

五、排序

a)public virtual void Sort();

对ArrayList或它的一部分中的元素进行排序。

ArrayListaList=newArrayList();

aList.Add("e");

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

DropDownList1.DataSource=aList;//DropDown ListDropDownList1;

DropDownList1.DataBind();

结果为eabcd

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

aList.Sort();//排序

DropDownList1.DataSource=aList;//DropDownListDropDownList1;

DropDownList1.DataBind();

结果为abcde

b)public virtual void Reverse();

将ArrayList或它的一部分中元素的顺序反转。

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

aList.Reverse();//反转

DropDownList1.DataSource=aList;//DropDownListDropDownList1;

DropDownList1.DataBind();

结果为edcba

六、查找

a)public virtual int IndexOf(object);

b)public virtual int IndexOf(object,int);

c)public virtual int IndexOf(object,int,int);

返回ArrayList或它的一部分中某个值的第一个匹配项的从零开始的索引。没找到返回-1。

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");

intnIndex=aList.IndexOf(“a”);//1

nIndex=aList.IndexOf(“p”);//没找到,-1

d)public virtual int LastIndexOf(object);

e)public virtual int LastIndexOf(object,int);

f)public virtual int LastIndexOf(object,int,int);

返回ArrayList或它的一部分中某个值的最后一个匹配项的从零开始的索引。

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("a");//同0

aList.Add("d");

aList.Add("e");

intnIndex=aList.LastIndexOf("a");//值为2而不是0

g)public virtual bool Contains(objectitem);

确定某个元素是否在ArrayList中。包含返回true,否则返回false

七、获取数组中的元素

下面以整数为例,给出获取某个元素的值的方法

ArrayList aList=new ArrayList();

for(int i=0;i<10;i++)

     aList.Add(i);

for(i=0;i<10;i++)

    Textbox1.text+=(int)aList[i]+" ";//获取的方式基本与一般的数组相同,使用下标的方式进行

结果为:0 1 2 3 4 5 6 7 8 9

八、其他

1.public virtual intCapacity{get;set;}

获取或设置ArrayList可包含的元素数。

2.public virtual intCount{get;}

获取ArrayList中实际包含的元素数。

Capacity是ArrayList可以存储的元素数。Count是ArrayList中实际包含的元素数。Capacity总是大于或等于Count。如果在添加元素时,Count超过Capacity,则该列表的容量会通过自动重新分配内部数组加倍。

如果Capacity的值显式设置,则内部数组也需要重新分配以容纳指定的容量。如果Capacity被显式设置为0,则公共语言运行库将其设置为默认容量。默认容量为16。

在调用Clear后,Count为0,而此时Capacity切是默认容量16,而不是0

3.public virtual void TrimToSize();

将容量设置为ArrayList中元素的实际数量。

如果不向列表中添加新元素,则此方法可用于最小化列表的内存系统开销。

若要完全清除列表中的所有元素,请在调用TrimToSize之前调用Clear方法。截去空ArrayList会将ArrayList的容量设置为默认容量,而不是零。

ArrayList aList=new ArrayList();

aList.Add("a");

aList.Add("b");

aList.Add("c");

aList.Add("d");

aList.Add("e");//Count=5,Capacity=16,

aList.TrimToSize();//Count=Capacity=5;

posted @ 2012-03-08 09:59 青蛙學堂 阅读(273) | 评论 (0)编辑 收藏

c#--arrayList实例

例一

//Dictionary
System.Collections.DictionaryEntry dic=new System.Collections.DictionaryEntry("key1","value1");

//ArrayList
System.Collections.ArrayList list=new System.Collections.ArrayList();
list.Add(1);
list.Add(2);
for(int i=0;i<list.Count;i++)
{
 System.Console.WriteLine(list[i]);
}

//HashTable
System.Collections.Hashtable table=new System.Collections.Hashtable();
table.Add("table1",1);
table.Add("table2",2);
System.Collections.IDictionaryEnumerator d=table.GetEnumerator();
while(d.MoveNext())
{
 System.Console.WriteLine(d.Entry.Key);
}

//Queue
System.Collections.Queue queue=new System.Collections.Queue();
queue.Enqueue(1);
queue.Enqueue(2);

System.Console.WriteLine(queue.Peek());
while(queue.Count>0)
{
 System.Console.WriteLine(queue.Dequeue());
}

//SortedList
System.Collections.SortedList list=new System.Collections.SortedList();
list.Add("key2",2);
list.Add("key1",1);
for(int i=0;i<list.Count;i++)
{
 System.Console.WriteLine(list.GetKey(i));
}

//Stack
System.Collections.Stack stack=new System.Collections.Stack();
stack.Push(1);
stack.Push(2);

System.Console.WriteLine(stack.Peek());
while(stack.Count>0)
{
 System.Console.WriteLine(stack.Pop());
}


例二

using System;
using System.Collections;

namespace myCon
{
 class Student
 {
  public Student(){}
  public Student(string strName)
 

  private string name;
  public string Name
  {
   get{ return name; }
  }

  public string ToString()
  {
   return name;
  }
 }

 class Connect: IEnumerable
 {
  IEnum ie = new IEnum();
  public void Add(object obj)
  {
   ie.lst.Add(obj);
  }

  public void ReMove(object obj)
  {
   ie.lst.Remove(obj);
  }

  public IEnumerator GetEnumerator()
  {
   return ie;
  }

  class IEnum: IEnumerator
  {
   public int idx = -1;
   public ArrayList lst = new ArrayList();

   public void Reset()
   {
    idx = -1;
   }

   public object Current
   {
    get
    {
     if (idx>=0 && idx<lst.Count)
      return lst[idx];
     return null;
    }
   }

   public bool MoveNext()
   {
    idx++;
    return idx<lst.Count;
   }
  }

 }
 
 
 class Class1
 {
  static void Main(string[] args)
  {
   Connect con = new Connect();
   con.Add(new Student("aaa"));
   con.Add(new Student("bbb"));
   con.Add(new Student("ccc"));
   foreach(Student stu in con)
   {
    Console.WriteLine(stu.Name);
   }
  
  }
 }
}

 

posted @ 2012-03-08 08:49 青蛙學堂 阅读(577) | 评论 (0)编辑 收藏

C#--conn--mysql

第一种方案DBC.NET解决方案 MyODBC Driver

优点: 兼容性好, 易于使用
缺点: 运行效率差, 原因是架构包含太多层

架构:
ODBC.NET应用程序 &lt;-&gt;ODBC.NET Provider &lt;-&gt; MYSQL ODBC 启动 &lt;-&gt; MYSQL API
&lt;-&gt; MYSQL 服务器

安装步骤:
1, 下载安装最新的.NET FRAMEWORK
2,安装MYSQL 服务端
3, 下载安装2.6版以上的MDAC(Microsoft Data Access Components )
地址:http://www.microsoft.com/data/
4, 下载 ODBC.NET Provider
http://www.microsoft.com/downloads/...ReleaseID=35715
5, 安装MySQL ODBC Driver ---- MyODBC 3.51;
http://www.mysql.com/downloads/api-myodbc-3.51.html
6, 安装一个MyODBC DSN

ODBC.NET安装后有如下几个操作类OdbcCommand, OdbcConnection



第二种方案:使用MYSQL NATIVE .NET Providers(推荐这个, 因为安装和使用都非常方便)

优点:速度快, 开发容易
缺点:是非标准访问技术

1,你可以参看dbProvider

http://www.einfodesigns.com/products.aspx

2, 或者MySQLNet
http://sourceforge.net/projects/mysqlnet/

3,推荐这个corelab开放的一个MYSQL.NET控件
http://crlab.com/mysqlnet/
有免费的下载

有如下几个类似于SQL 操作类
MySqlConnection, MySqlCommand,
MySqlDataReader,MySqlDataAdapter,MySqlParameter,MySqlTransaction

================================================

下面贴出第二种解决方案的部分源代码, 基本和SQL COMMAND等使用没有区别

string DataSource = "localhost";
string Database = "GameLib";
string UserID = "root";
string Password = "root-2003-";

string MyConString = Data Source=" + DataSource +
";Database=" + Database +
";User ID=" + UserID +
";Password=" + Password;

try{

MySqlConnection mycon = new MySqlConnection(MyConString);
mycon.Open();
}

finally{
mycon.Close();
}



第三种方案: 使用OLEDB.NET

MYSQL暂时不支持 MyOLEDB, 所以不采用OLEDB这个方案

posted @ 2012-03-07 16:46 青蛙學堂 阅读(563) | 评论 (2)编辑 收藏

Conn--mySql


using System;
using System.Configuration;
using MySql.Data.MySqlClient;
/// <summary>
/// TestDatebase 的摘要说明
/// </summary>
public class TestDatebase
{
    public TestDatebase()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }
    public static void Main(String[] args)
    {
        MySqlConnection mysql = getMySqlCon();
        //查询sql
        String sqlSearch = "select * from student";
        //插入sql
        String sqlInsert = "insert into student values (12,'张三',25,'大专')";
        //修改sql
        String sqlUpdate = "update student set name='李四' where id= 3";
        //删除sql
        String sqlDel = "delete from student where id = 12";
        //打印SQL语句
        Console.WriteLine(sqlDel);
        //四种语句对象
        //MySqlCommand mySqlCommand = getSqlCommand(sqlSearch, mysql);
        //MySqlCommand mySqlCommand = getSqlCommand(sqlInsert, mysql);
        //MySqlCommand mySqlCommand = getSqlCommand(sqlUpdate, mysql);
        MySqlCommand mySqlCommand = getSqlCommand(sqlDel, mysql);
        mysql.Open();
        //getResultset(mySqlCommand);
        //getInsert(mySqlCommand);
        //getUpdate(mySqlCommand);
        getDel(mySqlCommand);
        //记得关闭
        mysql.Close();
       String readLine = Console.ReadLine();
    }
    /// <summary>
    /// 建立mysql数据库链接
    /// </summary>
    /// <returns></returns>
    public static MySqlConnection getMySqlCon()
    {
        String mysqlStr = "Database=test;Data Source=127.0.0.1;User Id=root;Password=root;pooling=false;CharSet=utf8;port=3306";
        // String mySqlCon = ConfigurationManager.ConnectionStrings["MySqlCon"].ConnectionString;
        MySqlConnection mysql = new MySqlConnection(mysqlStr);
        return mysql;
    }
    /// <summary>
    /// 建立执行命令语句对象
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="mysql"></param>
    /// <returns></returns>
    public static MySqlCommand getSqlCommand(String sql,MySqlConnection mysql)
    {
        MySqlCommand mySqlCommand = new MySqlCommand(sql, mysql);
        //  MySqlCommand mySqlCommand = new MySqlCommand(sql);
        // mySqlCommand.Connection = mysql;
        return mySqlCommand;
    }
    /// <summary>
    /// 查询并获得结果集并遍历
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getResultset(MySqlCommand mySqlCommand)
    {
        MySqlDataReader reader = mySqlCommand.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                if (reader.HasRows)
                {
                    Console.WriteLine("编号:" + reader.GetInt32(0) + "|姓名:" + reader.GetString(1) + "|年龄:" + reader.GetInt32(2) + "|学历:" + reader.GetString(3));
                }
            }
        }
        catch (Exception)
        {

            Console.WriteLine("查询失败了!");
        }
        finally
        {
            reader.Close();
        }
    }
    /// <summary>
    /// 添加数据
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getInsert(MySqlCommand mySqlCommand)
    {
        try
        {
            mySqlCommand.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            String message = ex.Message;
            Console.WriteLine("插入数据失败了!" + message);
        }
      
    }
    /// <summary>
    /// 修改数据
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getUpdate(MySqlCommand mySqlCommand)
    {
        try
        {
            mySqlCommand.ExecuteNonQuery();
        }
        catch (Exception ex)
        {

            String message = ex.Message;
            Console.WriteLine("修改数据失败了!" + message);
        }
    }
    /// <summary>
    /// 删除数据
    /// </summary>
    /// <param name="mySqlCommand"></param>
    public static void getDel(MySqlCommand mySqlCommand)
    {
        try
        {
            mySqlCommand.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            String message = ex.Message;
            Console.WriteLine("删除数据失败了!" + message);
        }
    }
}






朋友下了个程序让我把数据库改为mysql,以前是连接sql server的。查了下资料,花了不少时间终于搞定了。把过程记录如下:

首先在c#里面是没有原生态支持mysql的,谷歌了下,找到了MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0这个类库,下载下来安装下得到如下几个dll:

 

 

 

 

 

 

 

 

接着在vs里面添加引用

下面就是开始写连接字符串了查了下这个dll的文档

得到MySqlConnection写为:MySqlConnection conn=new MySqlConnection(string cs);其中cs表示连接字符串可以用new MySqlConnectionString("服务器地址","数据库","登录名","密码").AsString;得到,接下来的操作基本就和SqlConnection一致了.

按照上面的配置我开始从数据库检索数据了,写了个测试的方法,结果居然连不上报错了!于是想到是没有为mysql配置远程登录权限,依旧谷歌查到一篇文章参见:

http://dev.firnow.com/course/7_databases/mysql/Mysqljs/2008324/107030.html

在数据库mysql里面的user表执行如下sql语句:

1 grant all privileges on *.* to "创建的用户名 @"%" identified by "密码";
结果搞定了,贴个连接上的图(数据库中的表被朋友删掉故查询不到)


 








 

posted @ 2012-03-07 16:16 青蛙學堂 阅读(344) | 评论 (0)编辑 收藏

Mysql使用方法

     摘要: 有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接mysql、修改密码、增加用户等方面来学习一些mysql的常用命令。一、连接mysql。格式: mysql -h主机地址 -u用户名 -p用户密码1、 例1:连接到本机上的mysql。首先在打开DOS窗口,然后进入目录mysql in,再键入命令mysql -uroot -p, 回车后提示你输密码,如果刚安装好mysql,...  阅读全文

posted @ 2012-03-07 15:01 青蛙學堂 阅读(757) | 评论 (0)编辑 收藏

自增主键

自增主键设置:

 

 

SQL Server 的话,你可以把CID设为自增加1,这样就可以实现在插入的时候自动生成CID的值了;

如果是oracle,你可以在oracle数据库里建个sequense,通过

select sequense.next() from dual 得到自增的序列号;

 

你创建表的时候,使用了自增吗?

比如

create table logo

(l_id int IDENTITY (1, 1) primary key,

l_name varchar(10) not null,

l_pw varchar(12) not null,

)

----------------

l_id int IDENTITY (1, 1) 这样就可以自动增加。

而且自增主键无需给他赋值。。。。

 

posted @ 2012-03-07 14:35 青蛙學堂 阅读(306) | 评论 (0)编辑 收藏

c#结构

在向大家详细介绍C#结构实例之前,首先让大家了解下类与结构有很多相似之处,然后全面介绍C#结构实例。

类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。

例如,将 Point 定义为结构而不是类在运行时可以节省很多内存空间。下面的程序创建并初始化一个 100 点的数组。对于作为类实现的 Point,出现了 101 个实例对象,因为数组需要一个,它的 100 个元素每个都需要一个。

  1. class Point  
  2. {  
  3.    public int x, y;  
  4.    public Point(int x, int y) {  
  5.       this.x = x;  
  6.       this.y = y;  
  7.    }  
  8. }  
  9. class Test  
  10. {  
  11.    static void Main() {  
  12.       Point[] points = new Point[100];  
  13.       for (int i = 0; i < 100; i++)  
  14.          points[i] = new Point(i, i*i);  
  15.    }  

如果将 Point 改为作为C#结构实现,如

  1. struct Point  
  2. {  
  3.    public int x, y;  
  4.    public Point(int x, int y) {  
  5.       this.x = x;  
  6.       this.y = y;  
  7.    }  

则只出现一个实例对象(用于数组的对象)。Point 实例在数组中内联分配。此优化可能会被误用。使用结构而不是类还会使应用程序运行得更慢或占用更多的内存,因为将C#结构实例作为值参数传递会导致创建结构的副本。
实例二:

public struct CoOrds { public int x, y; public CoOrds(int p1, int p2) { x = p1; y = p2; } } class TestCoOrds { static void Main() { // Initialize: CoOrds coords1 = new CoOrds(); CoOrds coords2 = new CoOrds(10, 10); // Display results: System.Console.Write("CoOrds 1: "); System.Console.WriteLine("x = {0}, y = {1}", coords1.x, coords1.y); System.Console.Write("CoOrds 2: "); System.Console.WriteLine("x = {0}, y = {1}", coords2.x, coords2.y); } } 输出 -------------------------------------------------------------------------------- CoOrds 1: x = 0, y = 0 CoOrds 2: x = 10, y = 10


posted @ 2012-03-07 11:29 青蛙學堂 阅读(234) | 评论 (1)编辑 收藏

C#枚举

     摘要: 是为了限定取值范围的 .比如一个变量是整型,但是可接受范围只有0-6,如果传七就不对了. public enum WeekDay:int { sonday = 0, monday = 1, tuesday = 2, ..... } C#枚举,枚举是一种值类型,由许多名字的常量(也叫枚举表)组成。例如 const int Mond...  阅读全文

posted @ 2012-03-07 11:05 青蛙學堂 阅读(1344) | 评论 (0)编辑 收藏

仅列出标题
共43页: First 15 16 17 18 19 20 21 22 23 Last 
<2025年2月>
2627282930311
2345678
9101112131415
16171819202122
2324252627281
2345678

导航

统计

常用链接

留言簿(8)

随笔分类

随笔档案

收藏夹

青蛙学堂

最新评论

阅读排行榜

评论排行榜