使用另一个类中一个类的字符串值

时间:2017-12-16 12:38:51

标签: c#

我在一个类中有一些方法返回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();

1 个答案:

答案 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类中。 请注意,如果移动这些方法,这些必须是静态的。我希望这段剪辑能说清楚如何解决这个问题。