【问题标题】:How can I use initialized instance objects from another class in C#?如何在 C# 中使用来自另一个类的初始化实例对象?
【发布时间】:2019-12-08 15:43:35
【问题描述】:

我有 Class1 的常量。在 Class2 中,Class1 的两个实例由用户创建和初始化。如何在 Program 中使用这些实例(它们的值由用户指定)?

我已经搜索了问题,但没有找到任何相关的帖子。

包含变量的Class1:

namespace project1
{
    public class Class1
    {
        public int var1;
        public double var2;
    }
}

Class2 中初始化了 Class1 的两个实例:

namespace project2
{
    public class Class2
    {
        public void Method2_1()
        {
            var constants1 = new project1.Class1
            {
                var1 = 1,
                var2 = 1.1
            };
        }
        public void Method2_2()
        {
            var constants2 = new project1.Class1
            {
                var1 = 2,
                var2 = 2.2
            };
        }
    }
}

我想在其中使用 Class1 的两个初始化实例的程序:

namespace Project3
{
    class Program
    {
        static void Main(string[] args)
        {
            //How can I use two instances "constants1" and "constants2" of Class1, separately, which are initialized in Class2 !?
        }
    }
}

感谢您的宝贵时间。

【问题讨论】:

  • constants1 和 constants2 实际上在 Method2_1() 和 Method2_2() 方法的末尾不再存在。
  • 是的,你是对的,如何更改代码以便可以使用 Program 中的值?
  • 也许尝试从您的方法返回值? (将此 public void Method2_x 更改为 public Class1 Method2_x(){return new Class1(){ var1 = xxx, var2 = xxx};}
  • 谢谢@taktak,我会试试你的方法。

标签: c# class object initialization


【解决方案1】:

这是一种解决方案:

public class Class1
{
    public int var1;
    public double var2;

    public override string ToString(){
        return "var1 : " + var1 + " var2 : " + var2;
    }
}
public class Class2
{
    public Class1 Method2_1()
    {
        return new Class1
        {
            var1 = 1,
            var2 = 1.1
        };
    }
    public Class1 Method2_2()
    {
        return new Class1
        {
            var1 = 2,
            var2 = 2.2
        };
    }
}
public class Program
{
    public static void Main(string[] args)
    {
        //Your code goes here
        var c1 = new Class2();
        var testM1 = c1.Method2_1();
        var testM2 = c1.Method2_2();
        Console.WriteLine("testM1 : " + testM1.ToString());
        Console.WriteLine("testM2 : " + testM2.ToString());

    }
}

您必须知道从另一个项目调用对象并不是真正的问题。您只需将其包含在您的使用中即可。

【讨论】:

  • 欢迎您。您可以通过学习如何在方法中返回类型来不断训练自己,这对您非常有用
猜你喜欢
  • 2015-03-19
  • 2017-01-16
  • 1970-01-01
  • 2014-11-09
  • 2016-05-30
  • 2022-11-20
  • 1970-01-01
  • 2018-12-13
相关资源
最近更新 更多