Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从方法/函数C返回数组的正确语法是什么#_C#_Arrays - Fatal编程技术网

C# 从方法/函数C返回数组的正确语法是什么#

C# 从方法/函数C返回数组的正确语法是什么#,c#,arrays,C#,Arrays,我正在做一个任务,在这个任务中,我应该在数组中存储一些字符串数据。每个新字符串都应该存储在一个单独的数组中,这就是为什么我需要一个方法来返回一个新数组,该数组的名称由用户指定每次调用此方法时,我需要一个具有uniq名称的新数组。 在2d行中,我得到一个错误:名为“\u arrayNameFromUser”的本地或参数不能在此范围中声明,因为该名称在封闭的本地范围中用于定义本地或参数测试 那么,如何使用用户指定的名称创建新数组呢 A local or parameter named '_array

我正在做一个任务,在这个任务中,我应该在数组中存储一些字符串数据。每个新字符串都应该存储在一个单独的数组中,这就是为什么我需要一个方法来返回一个新数组,该数组的名称由用户指定每次调用此方法时,我需要一个具有uniq名称的新数组。

在2d行中,我得到一个错误:名为“\u arrayNameFromUser”的本地或参数不能在此范围中声明,因为该名称在封闭的本地范围中用于定义本地或参数测试

那么,如何使用用户指定的名称创建新数组呢

A local or parameter named '_arrayNameFromUser' cannot be declared in this scope because that name is used in an enclosing local scope to define a local or parameter   test

为其指定与参数不同的名称:

static string[] NewArary(string name)
{            
    string[] ret = new string[2];
    ret[0] = name;
    return ret;
}
请注意,C#命名约定仅对字段使用
\u下划线预定义的
名称,而不是参数或局部变量,并且通常也仅限于
静态
字段(因为可以使用
this.
访问实例字段),请参见下面的标识符常规大写示例:

public class TypeName
{
    private static readonly String _staticField = "foo";

    private Int32 field;

    public Int32 Property { get { return this.field; } }

    public const String PublicConstant = "bar";

    public void Method(Uri parameter) {

        Int32 local = 123;
    }
}

(虽然我使用
Int32
代替
int
String
代替
String
是一个有争议的立场:D)

给它一个不同于参数的名称:

static string[] NewArary(string name)
{            
    string[] ret = new string[2];
    ret[0] = name;
    return ret;
}
请注意,C#命名约定仅对字段使用
\u下划线预定义的
名称,而不是参数或局部变量,并且通常也仅限于
静态
字段(因为可以使用
this.
访问实例字段),请参见下面的标识符常规大写示例:

public class TypeName
{
    private static readonly String _staticField = "foo";

    private Int32 field;

    public Int32 Property { get { return this.field; } }

    public const String PublicConstant = "bar";

    public void Method(Uri parameter) {

        Int32 local = 123;
    }
}

(虽然我使用
Int32
代替
int
String
代替
String
是一个有争议的立场:D)

在编译时和运行时之间存在一些混淆。您不会在运行时创建新变量

我想你需要的是一本
字典
。然后,您不必调用
NewArary
(原文如此),而是执行以下操作:

Dictionary<string,string[]> arrays = new Dictionary<string,string[]>();

//NewArary("abc");
arrays.Add("abc", new string[]{});

在这里,编译时和运行时之间存在一些混淆。您不会在运行时创建新变量

我想你需要的是一本
字典
。然后,您不必调用
NewArary
(原文如此),而是执行以下操作:

Dictionary<string,string[]> arrays = new Dictionary<string,string[]>();

//NewArary("abc");
arrays.Add("abc", new string[]{});

方法体中已经有名为
\u arrayNameFromUser
的变量-它是一个方法参数。因此,您不能用完全相同的名称声明另一个变量。还要注意,在模式代码指南中,
\uu
将指示私有实例字段,而不是局部变量或方法parameter@Icepickle改变了,谢谢你能给你的任务添加准确的描述吗?我认为(和其他一些人一样)这里有一个误解。在方法体中已经有名为
\u arrayNameFromUser
的变量-它是一个方法参数。因此,您不能用完全相同的名称声明另一个变量。还要注意,在模式代码指南中,
\uu
将指示私有实例字段,而不是局部变量或方法parameter@Icepickle改变了,谢谢你能给你的任务添加准确的描述吗?我认为(和其他一些人一样)这里有一个误解,这是错误的,因为它只会返回一个名为“ret”和第一个元素名(包含用户输入的内容)的数组。我想要的是每次调用此方法时都使用uniq名称的新数组。@Gusto您不能这样做-编译的代码是静态和固定的,包括标识符。不能像那样参数化变量名。我认为你误解了你的编程任务。这是错误的,因为它只返回一个名为“ret”的数组和第一个元素名(包含用户输入的内容)。我想要的是每次调用此方法时都使用uniq名称的新数组。@Gusto您不能这样做-编译的代码是静态和固定的,包括标识符。不能像那样参数化变量名。我想你误解了你的编程作业。我不能使用字典,我必须只使用数组(这是一项学术作业)@Gusto-那么你在什么地方误解了你的作业,因为你不能在运行时创建新的“变量”。我不能使用字典,我必须只使用数组(这是一项学术作业)@Gusto-然后你在某个地方误解了你的任务,因为你不能在运行时创建新的“变量”。