Используя типичное получают установленные свойства в C# … с параметрами

Вы можете использовать flex-box. Это очень легко реализовать и может удовлетворить все ваши требования. Он также отзывчив, что является важным требованием для вас, как вы упомянули в своем вопросе. ] , которые checkboxyes и headlinecontents. Обратите внимание, что по умолчанию flex-box выравнивает содержимое по горизонтали, поэтому вам не нужно указывать выравнивание для дочерних элементов.

  #container {
     width: 100%;
     display: flex;
  }

Вы хотите, чтобы содержимое вашего диапазона checkboxyes было выровнено по центру.

Для этого снова вы назначите display: flex элементу checkboxyes и выровняете его дочерние элементы по вертикали, используя align-items: center;.

  #checkboxyes {
     margin-right: 15px;
     display: flex;
     align-items: center;
  }

Читать больше о flex-box. Вы можете обратиться: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

9
задан Javier 25 October 2008 в 14:56
поделиться

5 ответов

Имеет ли так или иначе использование свойств в C# с параметрами

Нет. Только можно обеспечить свойство по умолчанию в C# с аргументом, для моделирования индексного доступа (как в словаре):

public T this[string key] {
    get { return m_Dictionary[key]; }
    set { m_Dictionary[key] = value; }
}

Другие свойства не могут иметь аргументов. Используйте функцию вместо этого. Между прочим, это повторно прокомментировано, чтобы сделать то же в VB, таким образом, другие языки.NET (C# …) могут использовать Ваш код.

Между прочим, Ваш код является излишне сложным. Четыре вещи:

  • Вы не должны выходить String идентификатор. Используйте ключевое слово непосредственно.
  • Почему бы не использовать ""?
  • Использовать TryGetValue, это быстрее. Вы запрашиваете словарь дважды.
  • Ваш метод set не должен тестировать, существует ли значение уже.

Public Shared Property DictionaryElement(ByVal Key As String) As Object
    Get
        Dim ret As String
        If m_Dictionary.TryGetValue(Key, ret) Then Return ret
        Return "" ' Same as String.Empty! '
    End Get
    Set(ByVal value As Object)
        m_Dictionary(Key) = value
    End Set
End Property
14
ответ дан 4 December 2019 в 08:35
поделиться

"Надлежащий" способ сделать это в C# должно создать дочерний класс конкретно для доступа к набору. Это должно или содержать сам набор или иметь внутренние связи с родительским классом.

4
ответ дан 4 December 2019 в 08:35
поделиться

Вот образец для Вас (с изменениями вроде предложений Grauenwolf):

using System;
using System.Collections.Generic;

public class Test
{
    public FakeIndexedPropertyInCSharp DictionaryElement { get; set; }

    public Test()
    {
        DictionaryElement = new FakeIndexedPropertyInCSharp();
    }

    public class FakeIndexedPropertyInCSharp
    {
        private Dictionary<string, object> m_Dictionary = new Dictionary<string, object>();

        public object this[string index]
        {
            get 
            {
                object result;
                return m_Dictionary.TryGetValue(index, out result) ? result : null;
            }
            set 
            {
                m_Dictionary[index] = value; 
            }
        }
    }


}

class Program
{
    static void Main(string[] args)
    {
        Test t = new Test();
        t.DictionaryElement["hello"] = "world";
        Console.WriteLine(t.DictionaryElement["hello"]);
    }
}
3
ответ дан 4 December 2019 в 08:35
поделиться

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

Public Sub AddOrUpdateKey(ByVal Key As String, ByVal Value as Object)
    If m_Dictionary.ContainsKey(Key) Then
        m_Dictionary(Key) = Value
    Else
        m_Dictionary.Add(Key, Value)
    End If
End Sub

Ваше свойство также возвращается String.Empty если ключ не существует, но утверждает, что возвратился Object, ни a String.

0
ответ дан 4 December 2019 в 08:35
поделиться

Спасибо Konrad, Alan, Grauenwolf,

В заключение я не могу использовать свойства C# точно таким же образом это в VB.NET... :_( Так или иначе, Ваши ответы было очень полезно для меня, и я, вероятно, возьму это идеи моему коду C#.

В дополнение к ответам на вопрос о свойствах существуют другие положительные стороны. Например,

  • Используйте TryGetValue, это быстрее. Вы запрашиваете словарь дважды.
  • Ваш метод set не должен тестировать, существует ли значение уже.

Спасибо Sören также с помощью метода не делают соответствий хорошо в моих начальных целях, но благодарит очень много.

0
ответ дан 4 December 2019 в 08:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: