求助,C#语句中数组字符串初始化不方便,如何简便

[复制链接]
1749|10
 楼主| mxzwt 发表于 2016-2-15 13:26 | 显示全部楼层 |阅读模式
C#中不能使用未赋值的变量,如果用语句如下造一个字符数组:
char[] a=new char[100]
之后要使用就必须得赋值,我想把a中所有的值都赋为0,没有专门赋值的函数,就只能用下面的语句
for(int i=0;i<a.length;i++){a[i]=0;};
之后我为了简便地赋初值把上面的语句封装喂函数:
void main(){
char[] a=new char[100];
chushihua(a);
}
void chushihua(char[] a){
for(int i=0;i<a.length;i++){a[i]=0;};
return;
}
却提示说“使用了未赋值的变量‘a’”
求助我要把数组的初始化程序封装成一个函数是要怎样
dirtwillfly 发表于 2016-2-15 13:58 | 显示全部楼层
不懂c#,帮顶
阿飞507 发表于 2016-2-15 15:05 | 显示全部楼层
怎么没有初始化函数?memset();就可以。加上#include <math.h>就可以使用了
 楼主| mxzwt 发表于 2016-2-15 17:57 | 显示全部楼层
阿飞507 发表于 2016-2-15 15:05
怎么没有初始化函数?memset();就可以。加上#include 就可以使用了

可是,那是C++源文件的格式啊
JLennon 发表于 2016-2-18 14:40 | 显示全部楼层
        static void Main(string[] args)
        {
            char[] a = new char[100];
            chushihua(a);
        }
        static void chushihua(char[] a)
        {
            for (int i = 0; i < a.Length; i++)
                {
                    a[i] ='0';
                //Console.WriteLine(a[i]);
                }

            return;
        }
 楼主| mxzwt 发表于 2016-2-18 21:54 | 显示全部楼层
JLennon 发表于 2016-2-18 14:40
static void Main(string[] args)
        {
            char[] a = new char[100];

为什么加static就可以了
JLennon 发表于 2016-2-19 10:01 | 显示全部楼层
    class Program
    {
        static void Main(string[] args)//C#的Main函数必须是静态的,除非你的这个Main不是程序入口点
        {
            char[] a = new char[100];
            //chushihua(a);
            (new Program()).chushihua(a);//这样也可以,此时chushihua()方法为非静态方法,调用时必须使用完全限定名
        }
         void chushihua(char[] a)
        {
            for (int i = 0; i < a.Length; i++)
            {
                a = '0';
                Console.WriteLine(a);
            }
            return;
        }
    }
 楼主| mxzwt 发表于 2016-2-19 23:43 | 显示全部楼层
JLennon 发表于 2016-2-19 10:01
class Program
    {
        static void Main(string[] args)//C#的Main函数必须是静态的,除非你的 ...

大神我还有一个问题
如果我设置了一个string类结构的数据,如下
string a="adfeaswefsgfsegstregt";
然后我再设置一个string
string b;
如果我想把a的字符串原封不动地复制到b中,就像:
string b="adfeaswefsgfsegstregt";
有没有什么简单的方法啊
我试过了b=a不行
JLennon 发表于 2016-2-20 01:12 | 显示全部楼层
mxzwt 发表于 2016-2-19 23:43
大神我还有一个问题
如果我设置了一个string类结构的数据,如下
string a="adfeaswefsgfsegstregt";

用String.Copy(String),因为C#的string是引用类型,赋值时是改变变量指向的引用,原来的引用的内容并没有改变。
https://msdn.microsoft.com/zh-cn/library/system.string.copy.aspx
 楼主| mxzwt 发表于 2016-2-20 12:55 | 显示全部楼层
JLennon 发表于 2016-2-20 01:12
用String.Copy(String),因为C#的string是引用类型,赋值时是改变变量指向的引用,原来的引用的内容并没 ...

大神我还有一个问题
就是我设置了一个double[]类型数组如下:
double[] a=new double[][0 0 9 9 9 9 9 9 8 8 8 8 8 8 8 8 8 7 45 7];
然后我又设置了另一个double[]
double[] b;
如果我想把a向量原封不动地复制到b中,简便的方法是要怎样
 楼主| mxzwt 发表于 2016-2-20 14:46 | 显示全部楼层
JLennon 发表于 2016-2-20 01:12
用String.Copy(String),因为C#的string是引用类型,赋值时是改变变量指向的引用,原来的引用的内容并没 ...

大神我还有一个问题,就是C#中的函数可不可以有一种格式能反回两种类型的数据,比如说下面的
int a=0;
char b='0';
int x=1;
(a,b)=hanshu(x);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

42

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部