using System;
using System.Collections;namespace ICSharpCode.Core.AddIns.Conditions
{
[Serializable()]
public class ConditionCollection : CollectionBase {
public ConditionCollection() {
}
public ConditionCollection(ConditionCollection value) {
this.AddRange(value);
}
public ConditionFailedAction GetCurrentConditionFailedAction(object caller)
{
ConditionFailedAction action = ConditionFailedAction.Nothing;
foreach (ICondition condition in this) {
if (!condition.IsValid(caller)) {
if (condition.Action == ConditionFailedAction.Disable) {
action = ConditionFailedAction.Disable;
} else {
return action = ConditionFailedAction.Exclude;
}
}
}
return action;
}
public ConditionCollection(ICondition[] value) {
this.AddRange(value);
}
public ICondition this[int index] {
get {
return ((ICondition)(List[index]));
}
set {
List[index] = value;
}
}
public int Add(ICondition value) {
return List.Add(value);
}
public void AddRange(ICondition[] value) {
for (int i = 0; (i < value.Length); i = (i + 1)) {
this.Add(value[i]);
}
}
public void AddRange(ConditionCollection value) {
for (int i = 0; (i < value.Count); i = (i + 1)) {
this.Add(value[i]);
}
}
public bool Contains(ICondition value) {
return List.Contains(value);
}
public void CopyTo(ICondition[] array, int index) {
List.CopyTo(array, index);
}
public int IndexOf(ICondition value) {
return List.IndexOf(value);
}
public void Insert(int index, ICondition value) {
List.Insert(index, value);
}
public new IConditionEnumerator GetEnumerator() {
return new IConditionEnumerator(this);
}
public void Remove(ICondition value) {
List.Remove(value);
}
public class IConditionEnumerator : object, IEnumerator {
private IEnumerator baseEnumerator;
private IEnumerable temp;
public IConditionEnumerator(ConditionCollection mappings) {
this.temp = ((IEnumerable)(mappings));
this.baseEnumerator = temp.GetEnumerator();
}
public ICondition Current {
get {
return ((ICondition)(baseEnumerator.Current));
}
}
object IEnumerator.Current {
get {
return baseEnumerator.Current;
}
}
public bool MoveNext() {
return baseEnumerator.MoveNext();
}
bool IEnumerator.MoveNext() {
return baseEnumerator.MoveNext();
}
public void Reset() {
baseEnumerator.Reset();
}
void IEnumerator.Reset() {
baseEnumerator.Reset();
}
}
}
}
using System.Collections;namespace ICSharpCode.Core.AddIns.Conditions
{
[Serializable()]
public class ConditionCollection : CollectionBase {
public ConditionCollection() {
}
public ConditionCollection(ConditionCollection value) {
this.AddRange(value);
}
public ConditionFailedAction GetCurrentConditionFailedAction(object caller)
{
ConditionFailedAction action = ConditionFailedAction.Nothing;
foreach (ICondition condition in this) {
if (!condition.IsValid(caller)) {
if (condition.Action == ConditionFailedAction.Disable) {
action = ConditionFailedAction.Disable;
} else {
return action = ConditionFailedAction.Exclude;
}
}
}
return action;
}
public ConditionCollection(ICondition[] value) {
this.AddRange(value);
}
public ICondition this[int index] {
get {
return ((ICondition)(List[index]));
}
set {
List[index] = value;
}
}
public int Add(ICondition value) {
return List.Add(value);
}
public void AddRange(ICondition[] value) {
for (int i = 0; (i < value.Length); i = (i + 1)) {
this.Add(value[i]);
}
}
public void AddRange(ConditionCollection value) {
for (int i = 0; (i < value.Count); i = (i + 1)) {
this.Add(value[i]);
}
}
public bool Contains(ICondition value) {
return List.Contains(value);
}
public void CopyTo(ICondition[] array, int index) {
List.CopyTo(array, index);
}
public int IndexOf(ICondition value) {
return List.IndexOf(value);
}
public void Insert(int index, ICondition value) {
List.Insert(index, value);
}
public new IConditionEnumerator GetEnumerator() {
return new IConditionEnumerator(this);
}
public void Remove(ICondition value) {
List.Remove(value);
}
public class IConditionEnumerator : object, IEnumerator {
private IEnumerator baseEnumerator;
private IEnumerable temp;
public IConditionEnumerator(ConditionCollection mappings) {
this.temp = ((IEnumerable)(mappings));
this.baseEnumerator = temp.GetEnumerator();
}
public ICondition Current {
get {
return ((ICondition)(baseEnumerator.Current));
}
}
object IEnumerator.Current {
get {
return baseEnumerator.Current;
}
}
public bool MoveNext() {
return baseEnumerator.MoveNext();
}
bool IEnumerator.MoveNext() {
return baseEnumerator.MoveNext();
}
public void Reset() {
baseEnumerator.Reset();
}
void IEnumerator.Reset() {
baseEnumerator.Reset();
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货