You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#新手求助:如何访问另一个类中的List集合

嘿,别担心,刚接触C#遇到这种问题太正常啦!我给你几个简单可行的方法,你可以根据自己的需求来选:

方法1:创建CommonClass的实例访问(最基础的方式)

因为你定义的itemData是实例成员,意思是每个CommonClass的对象都有一份这个列表,所以需要先创建一个CommonClass的实例,再通过实例访问它:

// 在你要访问的另一个类里,记得先引入命名空间
using NewParkingApp;

public class AnotherClass
{
    public void GetItemData()
    {
        // 先创建CommonClass的实例
        CommonClass commonObj = new CommonClass();
        
        // 现在就能通过实例访问itemData了
        foreach (string platform in commonObj.itemData)
        {
            Console.WriteLine(platform);
        }
    }
}

这种方式适合每个实例可能需要不同数据的场景,当然你的列表是固定初始化的,用这个方法完全没问题。

方法2:把itemData改成静态成员(全局共享)

如果这个列表是全局通用的,不需要每个CommonClass实例都存一份,那可以把它改成静态成员,这样不用创建实例就能直接访问:
先修改你的CommonClass代码:

using System;
using System.Collections.Generic;
namespace NewParkingApp {
    public class CommonClass {
        // 加上static关键字,变成静态成员
        public static List<string> itemData = new List<string>() { "Android", "IOS", "Windows Phone", "Xamarin-IOS", "Xamarin-Form", "Xamarin_Android" };
    }
}

然后在另一个类里直接访问:

using NewParkingApp;

public class AnotherClass
{
    public void GetItemData()
    {
        // 直接通过类名访问静态成员
        foreach (string platform in CommonClass.itemData)
        {
            Console.WriteLine(platform);
        }
    }
}

这种方式适合全局共享的配置类、常量类之类的场景,用起来更方便。

方法3:用属性封装(更规范的写法)

虽然你是新手,但可以提前了解一下C#的封装思想——把字段私有化,通过公共属性暴露,这样能更好地控制外部对数据的访问权限:
修改CommonClass:

using System;
using System.Collections.Generic;
namespace NewParkingApp {
    public class CommonClass {
        // 私有字段,外部不能直接访问
        private List<string> _itemData = new List<string>() { "Android", "IOS", "Windows Phone", "Xamarin-IOS", "Xamarin-Form", "Xamarin_Android" };
        
        // 公共属性,外部通过这个属性访问
        public List<string> ItemData
        {
            get { return _itemData; }
            // 如果不想让外部修改这个列表,可以删掉set
            set { _itemData = value; }
        }
    }
}

访问方式和方法1一样,先创建实例,再通过commonObj.ItemData访问。这种写法更安全,比如去掉set的话,外部只能读取列表,不能直接替换整个列表,避免误操作。

刚学的话可以先从方法1或方法2开始试,慢慢理解实例和静态成员的区别就好啦!

内容的提问来源于stack exchange,提问作者Josh Moorcroft-Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:31:44