C# winForm窗口程序怎么使一个list能全局通用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winForm窗口程序怎么使一个list能全局通用相关的知识,希望对你有一定的参考价值。

程序里有Account类,我已经从一个文档里读取了信息并存入一个List<Account> list 里。
程序后面需要对list里面的内容进行更改或者显示(不要求改源文档)。但是,我不知道怎么能使list全局通用,使得每次的在list里的数据更改都能保存下来。
求大神指点。
我不确定Account的属性设置是否有影响——
public long ID get; private set;
public string Type get; private set;
public int Balance get; private set;

参考技术A    public partial class Form1 : Form
    
        public static List<Account> AccountList
            = new List<Account>();
        //……
    

在项目中任何要的地方,使用Form1.AccoutList来存取这个list,例如

Form1.AccoultList.Add(new Account());
Account account = Form1.AccountList[0];

追问

额,有点bug
错误显示——
错误 1 无效的表达式项“public” E:\learn C#\Assignment4\Assignment4\Form1.cs 17 13 Assignment4
错误 2 修饰符“static”对该项无效 E:\learn C#\Assignment4\Assignment4\Form1.cs 17 20 Assignment4

怎么解决呢?

追答

在Fomr1中

    public partial class Form1 : Form
    
        public static List<Account> AccountList =
            new List<Account>();
            
        public Form1()
        
            InitializeComponent();
        
    

    public class Account
    
        //……
    

在Form2中使用AccountList 

 public partial class Form2 : Form
    
        public Form2()
        
            InitializeComponent();
            //使用
            Form1.AccountList.Add(new Account());
        
    

追问

cool !基本搞定了~
但是,我不知道怎么会出现这个问题——
错误 1 可访问性不一致: 字段类型“System.Collections.Generic.List”比字段“Assignment4.Form1.list”的可访问性低

我Account的可访问性该怎么设置?

追答 public class Account
    
        public Account(long id, string type, int balance)
        
            ID = id;
            Type = type;
            Balance = balance;
        
        public long ID  get; private set; 
        public string Type  get; private set; 
        public int Balance  get; private set; 
    

本回答被提问者采纳

以上是关于C# winForm窗口程序怎么使一个list能全局通用的主要内容,如果未能解决你的问题,请参考以下文章

c#(winform)怎么修改多个控件的一个共有属性?

C# winform 当移动窗口的时候,绘图就会改变,怎么使移动窗口的时候,不触发Paint事件呢? 谢谢

如何使窗口可拖动(C# Winforms)?

关于c# winform 编程的,怎么弄提示类似“加载中”的小窗口

C#如何使winform程序自适应屏幕分辨率显示

C# WinForm自定义进度条