我对编程还比较陌生,因此我尝试创建一个库,以便可以在不同项目中使用常用方法,而不必查找上次使用它并复制粘贴的方法。 我尝试使用https://docs.microsoft.com/en-us/dotnet/core/tutorials/library-with-visual-studio中概述的过程,但是在控制台应用程序中有效的方法产生了错误。代码如下:
for i in need:
need = i['ItemName']
print(need)
# Assign myURI for looping through need
for ItemName in need:
myUri = BASEURI + urllib.parse.quote(
"APIName?DateFrom=***&DateTo=***&ItemName=" + ItemName,
safe='?=&%')
当我在库中输入此代码时,它产生以下错误:
错误CS0117'数组'不包含'ConvertAll'的定义
如果有人能慷慨地花时间向我展示我出了问题的地方和/或概述创建C#库所涉及的过程,我将不胜感激。
如果有什么不同,我正在使用Visual Studio 2017。
答案 0 :(得分:2)
该错误很可能是由于代码顶部缺少导入导致的。尝试将using System;
或using System.Array;
放在代码的顶部。
但是,由于您试图建立常用功能的库,因此,我对如何编辑代码有更多建议。
此函数实际上不需要存在于库中,因为可以通过如下一行代码来完成:
int[] convertedNums = Array.ConvertAll(numbers, int.Parse);
但是,如果您想在学习中这样做,那么您实际上不应该在库函数中处理键盘输入,而是应该在其他地方进行,然后将其作为参数传递给函数。数组也可以很好地使用,但是使用列表可能更容易,更好。所以您最终可能会遇到这样的情况:
public static List<int> InitializeNumArray(string[] nums)
{
List<int> convertedNums = new List<int>();
foreach (string s in nums)
{
convertedNums.Add(Convert.ToInt32(s));
}
return convertedNums;
}
并且可以这样调用此函数:
Console.WriteLine("Please enter a series of numbers seperated by spaces");
string[] numbers = Console.ReadLine().Split(' ');
List<int> numberList = InitializeNumArray(numbers);