Нет, особого режима нет. При условии, что у вас включены прерывания с правильными приоритетами, ядро будет вытеснять (требуя прибытия с более высоким приоритетом во время суммирования) или цепочку хвостов (с тем же или более низким приоритетом) всякий раз, когда приходит второе прерывание после обработки первого. ]
Отключение этого поведения не принесет никакой пользы, регистры приоритетов уже дают вам полный контроль.
Чтобы создать свою собственную реализацию Contains, вы можете создать класс, реализующий интерфейс IList. Таким образом ваш класс будет выглядеть как IList. У вас может быть реальный список внутри, чтобы делать стандартные вещи.
class MyTypeList : IList<MyType>
{
private List<MyType> internalList = new ...;
public bool Contains(MyType instance)
{
}
....
}
Вам необходимо переопределить Equals
и GetHashCode
в вашем классе ([ MyType
).
Depending on what specific needs you have in your override you might use Linq expression for doing that:
list.Any(x => x.Name.Equals("asdas", .....)) // whatever comparison you need
You can then wrap it in an extension method for convenience.
Если вы реализуете пользовательский тип equals, будет работать функция содержимого List
List
uses EqualityComparer
to do comparisons; this checks first to see if your object implements IEquatable
; otherwise is uses object.Equals
.
So; the easiest thing to do is to override Equals
(always update GetHashCode
to match the logic in Equals
). Alternatively, use LINQ instead:
bool hasValue = list.Any(x => x.Foo == someValue);