예제 #1
0
 ElementReferencesOfFields()
 {
     return(FieldInfos.Select(
                f => ElementReference.Create(
                    () => (UnifiedElement)f.GetValue(this),
                    e => f.SetValue(this, e))));
 }
예제 #2
0
 /// <summary>
 ///   子要素とセッターのペアを列挙します。
 /// </summary>
 /// <returns> 子要素 </returns>
 public virtual IEnumerable <ElementReference> ElementReferences()
 {
     return(PropertyInfos.Select(
                p => ElementReference.Create(
                    () => (UnifiedElement)p.GetValue(this, null),
                    e => p.SetValue(this, e, null))));
 }
예제 #3
0
        public override IEnumerable <ElementReference> ElementReferences()
        {
            yield return
                (ElementReference.Create(
                     () => Arguments,
                     v => Arguments = (UnifiedSet <UnifiedArgument>)v));

            yield return
                (ElementReference.Create(
                     () => Type, v => Type = (UnifiedType)v));
        }
예제 #4
0
        public override IEnumerable <ElementReference> ElementReferencesOfFields(

            )
        {
            yield return
                (ElementReference.Create(
                     () => _arguments,
                     v =>
                     _arguments = (UnifiedSet <UnifiedGenericArgument>)v));

            yield return
                (ElementReference.Create(
                     () => _type, v => _type = (UnifiedType)v));
        }
        /// <summary>
        ///   子要素とセッターのペアを列挙します。
        /// </summary>
        /// <returns> 子要素 </returns>
        public override IEnumerable <ElementReference> ElementReferences()
        {
            // このクラスが持つ共通表現の要素のプロパティから得られる要素列
            foreach (var reference in base.ElementReferences())
            {
                yield return(reference);
            }
            // 共通表現の要素集合として持つ子要素列
            var count = Count;

            for (int i = 0; i < count; i++)
            {
                yield return(ElementReference.Create(
                                 () => this[i],
                                 e => this[i] = (TElement)e));
            }
        }
        ElementReferencesOfFields()
        {
            // このクラスが持つ共通表現の要素のプロパティから得られる要素列
            foreach (var reference in base.ElementReferencesOfFields())
            {
                yield return(reference);
            }
            // 共通表現の要素集合として持つ子要素列
            var count = ElementList.Count;

            for (int i = 0; i < count; i++)
            {
                yield return(ElementReference.Create(
                                 () => ElementList[i],
                                 e => ElementList[i] = (TElement)e));
            }
        }