现在的位置: 首页 > 综合 > 正文

C#中String str与String str=“”的区别 及 函数的参数数组。

2014年02月17日 ⁄ 综合 ⁄ 共 931字 ⁄ 字号 评论关闭

1:先说一下String str与String str=“”这两种方式的区别

 class Program
    {
        static void Main(string[] args)
        {
            String str="";
            for (int i = 0; i<1;i++ )
            {
                str = "100";
                Console.WriteLine(str);
            }

            Console.WriteLine(str);
            Console.Read();
        }

输出结果是:100

                      100

但是如果把String  str=“”改为String str的话,编译器会报错:使用了未赋值的局部变量str。为什么?

因为,C#为变量分配内存地址是在变量初始化的时候,也就是说,变量在声明的时候并没有被分配内存地址。我们在for代码块中为str分配了内存,正是因为在代码快中分配的内存,for代码块结束的时候,内存也随之被释放!

两种方式的区别是,String str仅仅是声明,而string str=“” 是声明并初始化。在根据变量的作用域,我们就不难理解为什么编译器会报错string str了。

 

2:函数参数数组

     参数数组能够让我们使用个数不定的参数来调用函数。可以使用params关键字来定义。

     注意:如果函数含有多个类型的参数和参数数组,参数数组必须放到最后面。

static void Main(string[] args)
        {
            Console.WriteLine(getMax("LeBron", "James", 188, 5, 2, 4, 2, 45, 52, 4, 152, 45, 5, 65, 265));
            Console.WriteLine(getMax("D", "Wade", 188, 5, 342, 4, 2, 45, 52, 4, 52, 145, 35, 65, 65));
            Console.Read();
        }
        public static string getMax(string firstname,string lastname, params int[] a)
        {
            int max = 0;
            foreach (int i in a)
            {

                if (i > max)
                {
                    max = i;
                }

            }
            return firstname+"-"+lastname+"的最大值是:"+max.ToString();
        }

结果:

 

 

 

抱歉!评论已关闭.