Files
2026-03-30 20:11:57 +07:00

59 lines
1.5 KiB
C#

//
// Author:
// Jb Evain (jbevain@gmail.com)
//
// Copyright (c) 2008 - 2015 Jb Evain
// Copyright (c) 2008 - 2011 Novell, Inc.
//
// Licensed under the MIT/X11 license.
//
using MonoFN.Collections.Generic;
namespace MonoFN.Cecil
{
internal sealed class ParameterDefinitionCollection : Collection<ParameterDefinition>
{
private readonly IMethodSignature method;
internal ParameterDefinitionCollection(IMethodSignature method)
{
this.method = method;
}
internal ParameterDefinitionCollection(IMethodSignature method, int capacity) : base(capacity)
{
this.method = method;
}
protected override void OnAdd(ParameterDefinition item, int index)
{
item.method = method;
item.index = index;
}
protected override void OnInsert(ParameterDefinition item, int index)
{
item.method = method;
item.index = index;
for (int i = index; i < size; i++)
items[i].index = i + 1;
}
protected override void OnSet(ParameterDefinition item, int index)
{
item.method = method;
item.index = index;
}
protected override void OnRemove(ParameterDefinition item, int index)
{
item.method = null;
item.index = -1;
for (int i = index + 1; i < size; i++)
items[i].index = i - 1;
}
}
}