`
baobeituping
  • 浏览: 1046552 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

c#(二)

    博客分类:
  • .NET
阅读更多

c#中的类型:

bool,int,uint,long,ulong,float,double,decimal,char,string.

 

c#中的名称空间:他是.NET中提供应用程序代码容器的方式,这样就可以唯一标示代码及内容。默认情况下C#代码包含在全局名称中。这意味着包含这段代码中的项,只要按照名称进行引用,就可以由全局名称空间中的其他代码访问他们。如果一个名称空间中的代码需要使用在另一个名称空间中的名称,就必须包括对该名称空间的引用。

 

例如:Program想要获得Class1中的方法引用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Class1
    {
        public void Write()
        {
            Console.WriteLine("成功");
        }
       
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
       public string str = "fengyun";
        static void Main(string[] args)
        {
            string str1 = "tuping";
            string str2 = "wuweiling";
            Console.WriteLine("{0} love {1}",str1,str2);
            Class1 c = new Class1();
            c.Write();
            Console.ReadKey();
        }
      
      
    }
}

 

 

定义数组的时候,如果采用如下方式:

const int var = 4;
            int[] myInt = new int[var] {1,2,3,4 };

 

那么const是必不可少的。规则为使用变量定义数组大小,该变量必须是一个常量。

 

字符串处理:

 string myString = "a string";
            char[] attrs = myString.ToCharArray();
            foreach(char s in attrs)
            {
                Console.WriteLine(s);
            }

 

ToCharArray()方法是将字符串解析成一个由CHAR组成的数组。

ToLower(),ToUpper()分别是将字符改为小写或大写。

Trim():删除空格或指定的字符

 char[] trimChars = { ' ','e','s'};
            string str = "yeeees";
            Console.WriteLine(str.Trim(trimChars));
            Console.ReadKey();

输出:y

将字符中的e,s去掉了。

 

 

 

C#中的引用参数和值参数(这点和JAVA不同)

例如:

             int i = 5;
            showDouble2(5);
            Console.WriteLine(i);
            Console.ReadKey();

 

 static void showDouble2( int val)
        {
            val += 2;
            Console.WriteLine(val);
        }

 

结果是:7,5,这是跟JAVA相同的。

C#中提供了另一种写法:

 int i = 5;
            showDouble1(ref i);
                      Console.WriteLine(i);
            Console.ReadKey();
        }
        static void showDouble1(ref int val)
        {
            val += 2;
            Console.WriteLine(val);
        }

他的意思是,将I传入方法中,并且要改变I的值,所以采用参数为ref.

使用REF的条件:

1.不能用CONST修饰属性。

2.不能没有属性的默认值。

3.在调用有REF的方法时,只能是变量名,不能是数字。例如例子中在调用的时候,只能写I,而不能写5.

 

 C#的函数还可以定义输出参数,意思是一个函数可以有两个返回值

 string var;
            string str = getValue("wu",out var);
            Console.WriteLine(str);
            Console.WriteLine(var);
            Console.ReadKey();
        }
        static string getValue(string str1,out string str2)
        {

            str2 = "tuping";

            return "hello "+str1;
        }
      

输出:hello wu

         tuping

第一个参数是函数的返回值,第二个参数是函数的输出值。

未赋值的变量用作REF是非法的,但可以把未赋值的变量用作OUT参数。

 

委托:委托的申明非常类似于函数,但不带函数体,且要使用delegate关键字,委托的声明指定了一个返回类型和易个参数列表。

例如:

class Program
    {
       public string str = "fengyun";
       delegate void Process(double var1, double var2);
        static void Main(string[] args)
        {
           

           Process process = new Process(add);
           process(2.0d, 10d);

          //先NEW一个,然后再执行,NEW的时候,参数是放函数名。
            Console.ReadKey();
        }

        static void mul(double var1,double var2)
        {
            Console.WriteLine(var1-var2);
        }
        static void add(double var1, double var2)
        {
            Console.WriteLine(var1 + var2);
        }

注意, delegate void Process(double var1, double var2);
代码要定义在Main方法以外。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics