Имущественная сумка для класса C#

Доступ к свойствам класса C#, таким как язык JavaScript, сделает жизнь намного проще.

Как мы можем сделать это в C#?

Например:

someObject["Property"]="simple string";
Console.WriteLine(someObject["FirstName"]);

4 ответа

Вот как вы можете включить в своих классах функциональность, похожую на пакет свойств, добавив несколько строк кода:

partial class SomeClass
{
    private static readonly PropertyDescriptorCollection LogProps = TypeDescriptor.GetProperties(typeof(SomeClass));

    public object this[string propertyName]
    {
        get { return LogProps[propertyName].GetValue(this); }
        set { LogProps[propertyName].SetValue(this, value); }
    }
}

Вы можете получить каждый класс из Dictionary<string, object>, Но тогда вы могли бы просто взять JavaScript вместо неправильного использования C#.

Этот код будет работать

dynamic user= new ExpandoObject();
user.name = "Anonymous";
user.id=1234
user.address="12 broad way"
user.State="NY"

Импортировать пространство имен System.Dynamic.

dynamic ключевое слово может быть использовано вместо

dynamic foo = ...
foo.Property = "simple string";
Console.WriteLine(foo.Property);
Другие вопросы по тегам