我在一个类中有一些方法返回to,from,message的值,并尝试在具有默认显示消息的其他类中使用这些方法。 我似乎无法使用从类2中的类1中的方法获得的字符串值。 我已经尝试将字符串值声明为public,但是出现了错误,但没有一个真正说出错误发生的原因。
public class ChristmasCard
{
public static void Main()
{
string toWhom = To();
string fromWhom = From();
double decorate = ChooseDecoration();
string message = AddMessage();
DoPromt(message);
DisplayMessage(decorate);
Console.ReadLine();
}
public class ChristmasCardTesting : ChristmasCard
{
public static void SantaA()
{
Console.WriteLine(ChristmasCard.toWhom);
Console.WriteLine(ChristmasCard.Message1);
Console.WriteLine(ChristmasCard.Message2);
Console.WriteLine(ChristmasCard.Message3);
Console.WriteLine(ChristmasCard.fromWhom);
Console.ReadLine();
答案 0 :(得分:0)
我猜遗传不是你想要的。您想要使用对象的实例。
首先您要创建ChristmasCard的实例。 该实例应该保存您希望在RAM中保存的值的属性/字段。
然后你想创建一个ChristmasCardTesting的实例,并在给圣诞卡作为参数的同时调用“testmethod”。
该代码可以在您的程序中执行。
我想你想要达到的目标应该更像是:
public class Program {
public static void Main(string[] args) {
ChristmasCard card = new ChristmasCard();
ChristmasCardController controller = new ChristmasCardController();
controller.SomeMethod(card);
WriteToConsole(card);
}
public static void WriteToConsole(ChristmasCard card) {
Console.WriteLine(card.ToWhom);
Console.WriteLine(card.Message);
Console.WriteLine(card.FromWhom);
Console.ReadLine();
}
}
/// <summary>
/// Pure data class does not needs methods!
/// </summary>
public class ChristmasCard {
public string ToWhom { get; set; }
public string FromWhom { get; set; }
public double Decorate { get; set; }
public string Message { get; set; }
}
/// <summary>
/// Controller for the dataClass
/// </summary>
public class ChristmasCardController {
public void SomeMethod(ChristmasCard card) {
card.ToWhom = To();
card.FromWhom = From();
card.Decorate = ChooseDecoration();
card.Message = AddMessage();
DoPromt(card);
DisplayMessage(card.Decorate);
}
private void DisplayMessage(double cardDecorate) {
//Write your message to the console
}
private void DoPromt(ChristmasCard card) {
//Do some ConsoleRead in here
}
private string AddMessage() {
throw new NotImplementedException();
}
private double ChooseDecoration() {
throw new NotImplementedException();
}
private string From() {
throw new NotImplementedException();
}
private string To() {
throw new NotImplementedException();
}
}
修改:
如果这完全不是你想要的,请解释你想要达到的目标,我百分百肯定我会找到答案。
<强> EDIT2 强>
该Controller类中的所有方法也可以在Program类中。 请注意,如果移动这些方法,这些必须是静态的。我希望这段剪辑能说清楚如何解决这个问题。