当前位置: 首页 > 编程语言 > C#

当前上下文中不存在名称“…”分享

时间:2023-04-10 13:35:52 C#

C#学习教程:名称“...”在当前上下文中不存在从变量到该列表的项目。但它抛出错误“当前上下文中不存在名称'dogList'”在我的addDog()方法中,由于上述原因,dogList.Add()不起作用。namespaceDoggyDatabase{publicclassProgram{publicstaticvoidMain(string[]args){//使用Dog类List创建列表dogList=newList();//获取用户输入Console.WriteLine("DogsName:");stringinputName=Console.ReadLine();Console.WriteLine("狗狗年龄:");intinputAge=Convert.ToInt32(Console.ReadLine());Console.WriteLine("狗的性别:");字符串inputSex=Console.ReadLine();Console.WriteLine("狗的品种:");字符串inputBreed=Console.ReadLine();Console.WriteLine("狗的颜色:");字符串inputColour=Console.ReadLine();Console.WriteLine("狗狗体重:");intinputWeight=Convert.ToInt32(Console.ReadLine());//将输入添加到列表中。添加狗(输入名称、输入年龄、输入性别、输入品种、输入颜色、输入重量);}publicstaticvoidaddDog(stringname,intage,stringsex,stringbreed,stringcolour,intweight){//当前上下文中不存在名称“dogList”dogList.Add(newDog(){name=姓名,年龄=年龄,sex=性别,品种=品种,颜色=颜色,重量=重量});}}publicclassDog{公共字符串名称{get;放;}publicintage{得到;放;}publicstringsex{get;放;}publicstringbreed{get;放;}公共字符串颜色{得到;放;}publicintweight{得到;公共类程序{静态列表dogList=newList();...或者,您可以将列表发送到add方法。主要问题是你在main中声明了dogList。您还将addDog声明为静态的。静态方法在当前对象之外。将Main想象成您住在客厅的客厅。现在把addDog想象成你的浴室,我站的地方。我们知道彼此在那里的知识,所以我们无法交流。publicclassDogDb{//DogDb包含狗的列表publicListdogs{get;放;}publicDogDb(){dogs=newList();}//DogDb可以控制将新狗添加到它的狗列表中。publicvoidaddDog(stringname,intage,stringsex,stringbreed,stringcolour,intweight){dogs.Add(newDog(){name=name,age=age,sex=sex,breed=breed,color=颜色,重量=重量});}publicclassDog{publicstringname{get;放;}publicintage{得到;放;}publicstringsex{get;放;}publicstringbreed{get;放;}公共字符串颜色{得到;放;}publicintweight{得到;放;}}}publicclassProgram{publicstaticvoidMain(string[]args){//创建DogDB类的新实例。varDogDb=newDogDb();//获取用户输入Console.WriteLine("DogsName:");stringinputName=Console.ReadLine();Console.WriteLine("狗狗年龄:");intinputAge=Convert.ToInt32(Console.ReadLine());Console.WriteLine("狗的性别:");字符串输入Sex=Console.ReadLine();Console.WriteLine("狗的品种:");字符串inputBreed=Console.ReadLine();Console.WriteLine("狗的颜色:");字符串inputColour=Console.ReadLine();Console.WriteLine("狗狗体重:");intinputWeight=Convert.ToInt32(Console.ReadLine());//向对象添加输入。DogDb.addDog(inputName,inputAge,inputSex,inputBreed,inputColour,inputWeight);@Ari....这是你如何做的使用系统;使用System.Collections.Generic;使用System.Linq;使用系统文本;使用System.Threading.Tasks;namespaceConsoleApplication4{namespaceDoggyDatabase{publicclassProgram{privatestaticListdogList=newList();publicstaticvoidMain(string[]args){//使用Dog类创建列表//获取用户输入Console.WriteLine("DogsName:");stringinputName=Console.ReadLine();Console.WriteLine("狗狗年龄:");intinputAge=Convert.ToInt32(Console.ReadLine());Console.WriteLine("狗的性别:");字符串inputSex=Console.ReadLine();Console.WriteLine("狗的品种:");字符串inputBreed=Console.ReadLine();Console.WriteLine("狗的颜色:");字符串inputColour=Console.ReadLine();Console.WriteLine("狗狗体重:");intinputWeight=Convert.ToInt32(Console.ReadLine());//将输入添加到列表中。添加狗(输入名称、输入年龄、输入性别、输入品种、输入颜色、输入重量);}publicstaticvoidaddDog(stringname,intage,stringsex,stringbreed,stringcolour,intweight){//当前上下文中不存在名称'dogList'dogList.Add(newDog(){name=name,age=年龄,sex=性别,breed=品种,color=颜色,weight=体重});}}publicclassDog{公共字符串名称{get;放;}publicintage{得到;放;}publicstringsex{get;放;}publicstringbreed{get;放;}公共字符串颜色{得到;放;}publicintweight{得到;放;}}}}该列表由于其保护级别而无法访问,当您必须在其他方法中使用该列表时,您必须首先声明它。快速编码dogList仅存在于Main方法的范围内。如果你在一个方法中声明了一个变量,它就变成了本地变量,不能在另一个方法中访问。您可以通过将必要的变量作为参数传递来解决它:publicstaticvoidaddDog(stringname,intage,stringsex,stringbreed,stringcolour,intweight,ListdogList)现在您在调用中传递变量,如下例://将输入添加到列表中。添加狗(输入名称、输入年龄、输入性别、输入品种、输入颜色、输入重量、狗列表);或者您可以在类的范围内声明变量:publicclassProgram{//使用Dog类创建列表staticListdogList=newList();在后一个版本中,您需要将其声明为静态的,否则编译器将要求类Program的实例能够访问变量dogList变量的范围是Main方法的本地范围,因此其他方法无法访问它在课堂上,您几乎没有办法做到正确,一种解决方案可能是将dogList和参数传递给方法,例如://addinputtothelist。添加狗(输入名称、输入年龄、输入性别、输入品种、输入颜色、输入重量、狗列表);并将addDog方法的签名更改为:publicstaticvoidaddDog(stringname,intage,stringsex,stringbreed,stringcolour,intweight,ListdogList){}如果你不想这样做,另一个解决方案可以就是在类级别创建你的dogList变量,哪怕变成这样的字段:而且我需要了解更多C#学习教程,希望大家多多关注——publicclassProgram{ListdogList=newList();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: