【问题标题】:C# How do I use a method in a different classC#如何在不同的类中使用方法
【发布时间】:2020-09-26 15:44:00
【问题描述】:

这里是新手, 所以我需要让用户输入日志的长度和直径,我还需要为它使用一种方法并在不同的类中使用该方法。我想我的用户输入部分是正确的,但是当我尝试使用该方法时,它告诉我“当前上下文中不存在名称'Take'”。我该如何解决这个问题?

 Using System;
 namespace Logger
{
class Loggers
{
    private double LogsLength, LogsDiameter; //must be private
    public Loggers(double LogsLengthValue, double LogsDiameterValue)
    {
        LogsLength = LogsLengthValue;
        LogsDiameter = LogsDiameterValue;
    }
    public double TakeLogsLength() { return LogsLength; }
    public double TakeLogsDiameter() { return LogsDiameter; }
    static void PlaceValues(double LogsLengthValue, double LogsDiameterValue)
    {
        Loggers r;
        r = new Loggers(LogsLengthValue, LogsDiameterValue);
        Console.Write("Input the logs length in meters: ");
        LogsLengthValue = double.Parse(Console.ReadLine());
        Console.Write("\nInput logs diameter in centimeters: ");
        LogsDiameterValue = double.Parse(Console.ReadLine());
    }
}
 class Program
{
    static void Main(string[] args)
    {
        PlaceValues(LogsLengthValue, LogsDiameterValue);
    }
}

【问题讨论】:

  • 你必须公开类和方法。并且您必须添加类名,如果您想在不先创建对象的情况下使用该方法,或者您必须先创建一个对象并使用对象名称来使用该方法。将class Loggers 更改为public class Loggers。将static void PlaceValues... 更改为public static void PlacesValues...。将 PlacesValues(LogLengthValue... 更改为 Loggers.PlaceValues(LogLengthValue...。但我认为,您的代码还有很多问题

标签: c# class methods user-input


【解决方案1】:

只是对你真正想做的事情的疯狂猜测。但我不确定。

using System;

namespace ConsoleApp4
{
    namespace Logger
    {
        class Program
        {
            static void Main(string[] args)
            {
                UserInput.PlaceValues();
            }
        }

        public class UserInput
        {
            public static void PlaceValues()
            {
                Console.Write("Input the logs length in meters: ");
                var logsLength = double.Parse(Console.ReadLine());
                Console.Write("\nInput logs diameter in centimeters: ");
                var logsDiameter = double.Parse(Console.ReadLine());
                var loggers      = new Loggers(logsLength, logsDiameter);

            }
        }

        public class Loggers
        {
            private double _logsLength;
            private double _logsDiameter; //must be private

            public Loggers(double logsLength, double logsDiameter)
            {
                _logsLength   = logsLength;
                _logsDiameter = logsDiameter;
            }

            public double GetLogsLength()
            {
                return _logsLength;
            }

            public double GetLogsDiameter()
            {
                return _logsDiameter;
            }
        }
    }
}

【讨论】:

    【解决方案2】:

    您应该将类​​和方法设为公开以便可访问。 如果你想read more about access modifiers

    所以你的代码应该是这样的:

    using System;
    namespace Logger
    {
        public class Loggers
        {
            private double LogsLength, LogsDiameter; //must be private
            public Loggers(double LogsLengthValue, double LogsDiameterValue)
            {
            LogsLength = LogsLengthValue;
            LogsDiameter = LogsDiameterValue;
            }
            public double TakeLogsLength() { return LogsLength; }
            public double TakeLogsDiameter() { return LogsDiameter; }
            public static void PlaceValues(double LogsLengthValue, double LogsDiameterValue)
            {
                Loggers r;
                r = new Loggers(LogsLengthValue, LogsDiameterValue);
                Console.Write("Input the logs length in meters: ");
                LogsLengthValue = double.Parse(Console.ReadLine());
                Console.Write("\nInput logs diameter in centimeters: ");
                LogsDiameterValue = double.Parse(Console.ReadLine());
            }
        }
        public class Program
        {
            public static void Main(string[] args)
            {
                Loggers.PlaceValues(LogsLengthValue, LogsDiameterValue);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多