コード例 #1
0
ファイル: CountedClassifier.cs プロジェクト: zf724/VsVim
 internal CountedClassifier(
     PropertyCollection propertyCollection,
     object key,
     Func <IClassifier> createFunc)
 {
     _countedValue = CountedValue <IClassifier> .GetOrCreate(propertyCollection, key, createFunc);
 }
コード例 #2
0
ファイル: CountedTagger.cs プロジェクト: zf724/VsVim
 internal CountedTagger(
     PropertyCollection propertyCollection,
     object key,
     Func <ITagger <TTag> > createFunc)
 {
     _countedValue = CountedValue <ITagger <TTag> > .GetOrCreate(propertyCollection, key, createFunc);
 }
コード例 #3
0
ファイル: CountedValue.cs プロジェクト: zf724/VsVim
        internal static CountedValue <T> GetOrCreate(
            PropertyCollection propertyCollection,
            object key,
            Func <T> createFunc)
        {
            CountedValue <T> countedValue;

            if (propertyCollection.TryGetPropertySafe(key, out countedValue))
            {
                countedValue._count++;
                return(countedValue);
            }

            countedValue            = new CountedValue <T>(propertyCollection, key, createFunc());
            propertyCollection[key] = countedValue;
            return(countedValue);
        }