【问题标题】:It's not a method, its not a variable, its not a property, what is it? [duplicate]它不是一个方法,它不是一个变量,它不是一个属性,它是什么? [复制]
【发布时间】:2018-11-01 09:43:06
【问题描述】:

我今天遇到了一些我不明白的事情。考虑以下 sn-p:

public class EventStreamCollection<TKey, TValue>
{
    private readonly ConcurrentDictionary<TKey, TValue> _dictionary = new ConcurrentDictionary<TKey, TValue>();
    private readonly Func<TKey, TValue> _factory;
    public EventStreamCollection(Func<TKey, TValue> factory)
    {
        _factory = factory;
    }

    public TValue this[TKey key] => _dictionary.GetOrAdd(key, _factory);
}

这是什么线

public TValue this[TKey key] => _dictionary.GetOrAdd(key, _factory);

我看不到它的名字。如果是这样,我想这将是一个财产?它是什么以及它是如何工作的?

【问题讨论】:

    标签: c#


    【解决方案1】:

    这是一个只读的,indexer property

    索引器使用this 作为名称。它允许您在您的类型的实例上支持方括号。

    使用=&gt; 语法,将其设为只读。

    【讨论】:

    • 它允许您在您的类型的实例变量上支持方括号。
    • @PhilipSmith 更新
    • 只有 C#6 或更高版本才有可能
    猜你喜欢
    • 2012-10-18
    • 2014-03-16
    • 1970-01-01
    • 2016-04-20
    • 2013-10-28
    • 2020-11-09
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    相关资源
    最近更新 更多