如何列出可公开访问的类?

时间:2013-03-13 01:09:58

标签: c# class public

这里的第一个问题,要温柔。我试着用自己详尽的搜索。

我希望可以从任何地方访问以下对象列表,我理解的是“单身”类。

public class Car
{
    public string Name;
    public string Color;
    public int Value;
}


List<Vehicle> carList = new List<Vehicle>();

Car jeep = new Car();
jeep.Name = "Jeep";
jeep.Color = "Red";
jeep.Value = 20000;

Vehicle.Add(jeep);

这样我就可以在Windows窗体应用程序的任何地方访问和修改它,使用点击按钮进行以下操作:

MessageBox.Show(Vehicle[0].name)

我错过了什么。如何将列表车辆公开?

5 个答案:

答案 0 :(得分:7)

鉴于你所展示的内容,单身模式现在对你来说似乎有点多了。如果你不同意,请告诉我们,我们会指出你正确的方向,现在,尝试这样的事情:

public class AcessStuff
{
  public static List<Vehicle> CarList = new List<Vehicle>();
}

你可以像这样访问它:

private void SomeFunction()
{
  MessageBox.Show(AcessStuff.CarList[0].Name)
}

答案 1 :(得分:1)

如果您希望列出readonly,那么您只需提供getter

public class Vehicles
{
    private static readonly List<Vehicle> _vehicles = new List<Vehicle>();

    public static List<Vehicle> Instance { get { return _vehicles; } }
}

答案 2 :(得分:0)

实际上,我会将这个link称为单身人士

这是一个版本:

public sealed class Singleton
 {
     private static readonly Singleton instance = new Singleton();

     // Explicit static constructor to tell C# compiler
     // not to mark type as beforefieldinit
     static Singleton()
     {
     }

     private Singleton()
     {
     }

     public static Singleton Instance
     {
         get
         {
             return instance;
         }
     }
 }

许多程序员认为使用静态有害,通常是设计不良的标志。你真的需要一个单例来访问你的类和对象吗?

答案 3 :(得分:0)

有两种方法可以实现这一目标。

一种是在项目中创建一个Data.cs文件,您可以放置​​所有全局应用程序数据。例如:

<强> Data.cs

public static class ApplicationData
{
    #region Properties

    public static List<Vehicle> CarList
    {
        get
        {
            return ApplicationData._carList;
        }
    }
    private static List<Vehicle> _carList = new List<Vehicle>();

    #endregion
}

两个是在窗口类中创建变量carList。例如:

public class MyWindow : Window
{
    #region Properties

    public List<Vehicle> CarList
    {
        get
        {
            return this._carList;
        }
    }
    private List<Vehicle> _carList = new List<Vehicle>();

    #endregion

    /* window stuff */
}

答案 4 :(得分:0)

使用所有

的静态对象
 public static List<string> vehicles =new  List<string> ();

静态类和类成员用于创建可在不创建类实例的情况下访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么,数据和函数都不会更改。当类中没有依赖于对象标识的数据或行为时,可以使用静态类。