首页 > 解决方案 > 无法在单独的方法c#中访问类方法,名称item1在当前上下文中不存在

问题描述

试图使用一个类方法,该类的一个实例在一个单独的方法中。使用方法 RandomItem() 来构建类 Item 的实例。使用 ViewItem() 显示项目,它说:

"The name 'item1' does not exist in this context"

这是我的代码:

  class Program
    {
        public class Item
        {
            public string part1;

            public Item(string _part1)
            {
                part1 = _part1;
            }

            public void PrintItem()
            {
                Console.WriteLine(part1);
            }
        }
        public static void Main() 
        {
            RandomItem();
            ViewItem();
        }

        public static void RandomItem() {
            string randomPart1 ="";
            Item item1 = new Item(randomPart1);
        }
        public static void ViewItem() {
            item1.PrintItem(); //this is where the error is "The name 'item1' does not exist in the current context
        }
    }   
}

对 c# 来说有点新,只是不知道为什么我不能访问 item1.PrintItem(),或者我什至被允许这样做。任何帮助将非常感激。

标签: c#

解决方案


如果变量是本地变量,则需要return它以便调用者可以访问它。然后你需要将它作为参数传递给另一个方法来访问它。

    public static void Main() 
    {
        var item = RandomItem();   //Retrieve item 
        ViewItem(item);            //Then pass it in
    }

    public static Item RandomItem() {
        string randomPart1 ="";
        Item item1 = new Item(randomPart1);
        return item1;    //Return the item to Main
    }


    public static void ViewItem(Item item1) { //Accept item as argument from Main
        item1.PrintItem(); 
    }

还有其他选项——例如,您可以使用静态变量——但这是最常见的方法。


推荐阅读