繁体   English   中英

C# 如何使用不同类中的方法

[英]C# How do I use a method in a different class

新手在这里,所以我需要让用户输入日志的长度和直径,我还需要使用一种方法并在不同的类中使用该方法。 我想我的用户输入部分是正确的,但是当我尝试使用该方法时,它告诉我“当前上下文中不存在名称‘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);
    }
}

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

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;
            }
        }
    }
}

您应该公开类和方法以使其可访问。 如果你想阅读更多关于访问修饰符的信息

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

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);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM