这是一个班级的作业。
到目前为止,这是我的代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Proj03
{
class MyClass
{
public string MyClass(bool First, int Last)
{
if (First == true)
{
return "FirstName";
}
else if (Last == 3)
{
return "LastName";
}
}
}
class Program
{
static void Main(string[] args)
{
bool var1 = true;
int var2 = 3;
Console.WriteLine(new MyClass(var1)); //Line 34
Console.WriteLine(new MyClass(var2)); //Line 35
Console.WriteLine("Press any key to terminate.");
Console.ReadKey();
}//end main
}//end class Program
}//end namespace
我遇到的问题有两个:
首先,第34行和第35行的错误一直表示" MyClass"中没有构造函数。这需要一个参数。因此,很容易推断出,哇,我需要一个可以在类中使用一个参数的构造函数。我可以使构造函数很好,但困难在于传递" var1"和" var2"。我相信我需要在这里通过引用。
其次,我认为我需要考虑到" var1"和" var2"是不同的变量类型。我真的不知道该怎么做。但这篇文章的主要问题是弄清楚第一个问题。
指导员给我们的限制是我们不允许在"程序"中更改任何内容。类。
所需的输出如下:
在此处显示您的名字 在这里显示你的姓氏 按任意键即可终止。
答案 0 :(得分:1)
您可以像这样解决缺少的构造函数问题:
public MyClass(bool First)
{
// your code here
}
public MyClass(int Last)
{
// your code here
}
请注意,没有指定返回类型,因为构造函数没有返回值。这将允许您的构造函数调用成功运行。
答案 1 :(得分:1)
我可能不应该这样做,但是,嗯......这就是你想要实现的目标吗?
class MyClass
{
private bool? _first;
private int? _last;
public MyClass(bool first)
{
_first = first;
}
public MyClass(int last)
{
_last = last;
}
public override string ToString()
{
if (_first != null)
return "FirstName";
if (_last != null)
return "LastName";
return String.Empty;
}
}
答案 2 :(得分:0)
问题是由于您的类名和方法名称相同。你不能做这个。您班级中的任何属性或方法都不得与您的班级相同。
您的构造函数问题是由于您调用new MyClass(var1)
。您没有在类中指定构造函数。这看起来像这样:
public class MyClass
{
// This is a constructor that takes a parameter.
public MyClass(string myString)
{
}
// This is a constructor that takes 0 parameters.
// This exists if you do not specifically declare a constructor.
public MyClass()
{
}
}
答案 3 :(得分:0)
您在这里寻找的是构造函数重载。你应该创建一个接受bool
作为参数的构造函数和另一个接受int
的构造函数。
这是一项家庭作业,所以我不打算提供样本。但是,这应该足以让你开始。
祝你好运。答案 4 :(得分:-1)
查看可选参数。使用它们,您可以在构造函数默认值中分配参数(与程序将发送的值不同)。然后,您的程序可以通过任一变量类型发送,并且不会因错误的参数数量或变量类型而抛出错误。