打印

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

[复制链接]
1512|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++源文件的格式啊

使用特权

评论回复
5
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;
        }

使用特权

评论回复
6
mxzwt|  楼主 | 2016-2-18 21:54 | 只看该作者
JLennon 发表于 2016-2-18 14:40
static void Main(string[] args)
        {
            char[] a = new char[100];

为什么加static就可以了

使用特权

评论回复
7
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;
        }
    }

使用特权

评论回复
8
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不行

使用特权

评论回复
9
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

使用特权

评论回复
10
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中,简便的方法是要怎样

使用特权

评论回复
11
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

粉丝