C# 4.0 如何克服此错误'Vehicle.CreateObject(int,string,int,string)';:并非所有代码路径都返回值
/*我是C#的初学者。我试图创建一个简单的车辆细节。我的约束是-我希望这些方法包含在我的程序中。1-公共车辆CreateObject(int lNo,String bName),但在编译时-错误CS0161:`Vehicle.CreateObject(int,String,int,String)':不是所有代码路径都返回值,我不确定调用公共字符串DisplayDetails(Vehicle v)时会发生什么。我知道那里的方法是什么。但我不明白(v车)在那个地方发生了什么*/C# 4.0 如何克服此错误'Vehicle.CreateObject(int,string,int,string)';:并非所有代码路径都返回值,c#-4.0,C# 4.0,/*我是C#的初学者。我试图创建一个简单的车辆细节。我的约束是-我希望这些方法包含在我的程序中。1-公共车辆CreateObject(int lNo,String bName),但在编译时-错误CS0161:`Vehicle.CreateObject(int,String,int,String)':不是所有代码路径都返回值,我不确定调用公共字符串DisplayDetails(Vehicle v)时会发生什么。我知道那里的方法是什么。但我不明白(v车)在那个地方发生了什么*/ using Syst
using System;
public class Vehicle
{
public int licenseNo;
public String brandName;
public int noOfWheels;
public string color;
public Vehicle CreateObject( int lNo, String bName,int wheels, String colour)
{
licenseNo = lNo;
brandName = bName;
noOfWheels = wheels;
color = colour;
}
public String DisplayDetails(Vehicle v)
{
Console.WriteLine(licenseNo);
Console.WriteLine(brandName);
Console.WriteLine(noOfWheels);
return color;
}
}
public class Program
{
public static void Main()
{
Vehicle v1 = new Vehicle();
Console.WriteLine("Enter license number,brand name, no of wheels and color for vehicle");
v1.licenseNo = Convert.ToInt32(Console.ReadLine());
v1.brandName = Console.ReadLine();
v1.noOfWheels = Convert.ToInt32(Console.ReadLine());
v1.color = Console.ReadLine();
v1.DisplayDetails();
Console.WriteLine(v1.color);
}
}
这是因为在
CreateObject
方法中没有返回值
如果你想让一个方法不返回一个值(这里你没有,因为它没有多大意义),你必须说public void CreateObject(等等)
。您正在声明要返回车辆
对象,但未能返回
这就是说,你的整个概念是错误的。您不想在此处使用CreateObject
;你需要一个构造函数。关于构造函数。我建议你去看看
也就是说,只要去掉CreateObject
,那么:
public Vehicle (int lNo, String bName,int wheels, String colour)
{ //etc.
这将使构造函数具有正确的语法<如果您正在使用Interop创建COM对象,并且您在这里没有尝试这样做,则可以使用code>CreateObject。我已经冒昧地清理了您的缩进。在以后的文章中,请正确缩进和分隔代码。如果您的代码中根本没有任何缩进,那么阅读起来就困难多了,如果您以这种方式折磨读者,您就不太可能得到答案。:)谢谢你,博布罗德斯!!供您考虑。我已经看过你附在这里的文件了。但是在我的程序中,我需要使用(publicvhicle CreateObject(intlno,stringbname,intwheels,stringcolor)——这个方法创建并返回一个Vehicle对象。我对这方面没有深入的了解。我想学习如何为此编程。如果你不是我的,请让你解释。@mohamedimran你从哪里得到你的要求?首先你说你需要使用
CreateObject
,然后你说你不知道它。如果您不了解它,那么如何知道需要使用CreateObject
?
using System;
public class Vehicle
{
public int licenseNo;
public String brandName;
public int noOfWheels;
public string color;
public Vehicle CreateObject(int lNo,String bName,int wheels,String colour)
{
Vehicle v = new Vehicle();
Console.WriteLine("Enter license number,brand name,no of wheels and color for vehicle");
licenseNo = Convert.ToInt32(Console.ReadLine());
brandName = Convert.ToString(Console.ReadLine());
noOfWheels = Convert.ToInt32(Console.ReadLine());
color = Convert.ToString(Console.ReadLine());
return v;
}
public String DisplayDetails(Vehicle v)
{
Console.WriteLine("License Number: {0}",licenseNo);
Console.WriteLine("Brand Name: {0}",brandName);
Console.WriteLine("No of Wheels: {0}",noOfWheels);
Console.ReadKey();
return color;
}
}
public class Program
{
public static void Main(string[] args)
{
int lNo,wheels;
String bName="";
String colour="";
Vehicle v = new Vehicle();
lNo = v.licenseNo;
bName = v.brandName;
wheels = v.noOfWheels;
colour = v.color;
v.CreateObject(lNo,bName,wheels,colour);
v.DisplayDetails(v);
Console.WriteLine("Color: {0}",v.color);
Console.Read();
}
}