e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="Range.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
// <owner current="true" primary="true">[....]</owner>
|
|
// <owner current="true" primary="false">[....]</owner>
|
|
// <owner current="false" primary="false">[....]</owner>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Data {
|
|
using System;
|
|
|
|
internal struct Range {
|
|
|
|
private int min;
|
|
private int max;
|
|
private bool isNotNull; // zero bit pattern represents null
|
|
|
|
public Range(int min, int max) {
|
|
if (min > max) {
|
|
throw ExceptionBuilder.RangeArgument(min, max);
|
|
}
|
|
this.min = min;
|
|
this.max = max;
|
|
isNotNull = true;
|
|
}
|
|
|
|
public int Count {
|
|
get {
|
|
if (IsNull)
|
|
return 0;
|
|
return max - min + 1;
|
|
}
|
|
}
|
|
|
|
public bool IsNull {
|
|
get {
|
|
return !isNotNull;
|
|
}
|
|
}
|
|
|
|
public int Max {
|
|
get {
|
|
CheckNull();
|
|
return max;
|
|
}
|
|
}
|
|
|
|
public int Min {
|
|
get {
|
|
CheckNull();
|
|
return min;
|
|
}
|
|
}
|
|
|
|
internal void CheckNull() {
|
|
if (this.IsNull) {
|
|
throw ExceptionBuilder.NullRange();
|
|
}
|
|
}
|
|
}
|
|
}
|