Определение структуры массива со значениями

Обновить

December 2018

Просмотры

1.4k раз

3

Могу ли я определить структура / класс массив со значениями -кака и как цены ниже?

   struct RemoteDetector
    {
        public string Host;
        public int Port;
    }

    RemoteDetector oneDetector = new RemoteDetector() { "localhost", 999 };
    RemoteDetector[] remoteDetectors = {new RemoteDetector(){"localhost",999}};        

Edit: я должен использовать имена переменных до значений:

    RemoteDetector oneDetector = new RemoteDetector() { Host = "localhost", Port = 999 };
    RemoteDetector[] remoteDetectors = { new RemoteDetector() { Host = "localhost", Port = 999 } };        

2 ответы

3

Вы хотите использовать объект и коллекции синтаксис инициализации C # 's , как это:

struct RemoteDetector
{
    public string Host;
    public int Port;
}

class Program
{
    static void Main()
    {
        var oneDetector = new RemoteDetector
        {
            Host = "localhost",
            Port = 999
        };

        var remoteDetectors = new[]
        {
            new RemoteDetector 
            { 
                Host = "localhost", 
                Port = 999
            }
        };
    }
}

Edit: Это очень важно , что вы будете следовать советам Энтони и сделать эту структуру неизменны. Я показываю некоторые из синтаксиса C # s здесь , но лучшей практике при использовании структур, чтобы сделать их неизменны.

7

Вы можете сделать это, но это не рекомендуется, так как ваша структура будет изменчивой. Вы должны стремиться к неизменности с вашими структурами. Таким образом, значения для установки должны быть переданы через конструктор, который также достаточно просто сделать в инициализации массива.

struct Foo
{
   public int Bar { get; private set; }
   public int Baz { get; private set; }

   public Foo(int bar, int baz) : this() 
   {
       Bar = bar;
       Baz = baz;
   }
}

...

Foo[] foos = new Foo[] { new Foo(1,2), new Foo(3,4) };