SORU
17 Mart 2011, PERŞEMBE


Orada bir C# tamsayı bir Dizi temsil eden bir tip mi?

Tamsayı bir dizi depolamak için bir ihtiyaç var. C# 4.0 için varolan bir türü var mı?

Elbette, int ile kendi sınıf yazma ve özellikleri İçin int ve < sağlamak için doğru mantık inşa edebilirim;=. Ama eğer bir tür varsa, tabii ki yerine kullanmak istiyorum.

CEVAP
17 Mart 2011, PERŞEMBE


En iyisi benim kendi rulo buldum. Bazı insanlar Tuples Points kullanın, ama sonunda aralığınızı geniş bir Yelpazede ilgili bazı kullanışlı yöntemler sağlar. Aynı zamanda en iyi genel (eğer Çiftler bir dizi gerekiyorsa, ya da bazı özel sınıf bir dizi?) Örneğin:

    public class Range<T> where T : IComparable<T>
    {
            /// <summary>
            /// Minimum value of the range
            /// </summary>
            public T Minimum { get; set; }

            /// <summary>
            /// Maximum value of the range
            /// </summary>
            public T Maximum { get; set; }

            /// <summary>
            /// Presents the Range in readable format
            /// </summary>
            /// <returns>String representation of the Range</returns>
            public override string ToString() { return String.Format("[{0} - {1}]", Minimum, Maximum); }

            /// <summary>
            /// Determines if the range is valid
            /// </summary>
            /// <returns>True if range is valid, else false</returns>
            public Boolean IsValid() { return Minimum.CompareTo(Maximum) <= 0; }

            /// <summary>
            /// Determines if the provided value is inside the range
            /// </summary>
            /// <param name="value">The value to test</param>
            /// <returns>True if the value is inside Range, else false</returns>
            public Boolean ContainsValue(T value)
            {
                    return (Minimum.CompareTo(value) <= 0) && (value.CompareTo(Maximum) <= 0);
            }

            /// <summary>
            /// Determines if this Range is inside the bounds of another range
            /// </summary>
            /// <param name="Range">The parent range to test on</param>
            /// <returns>True if range is inclusive, else false</returns>
            public Boolean IsInsideRange(Range<T> Range)
            {
                    return this.IsValid() && Range.IsValid() && Range.ContainsValue(this.Minimum) && Range.ContainsValue(this.Maximum);
            }

            /// <summary>
            /// Determines if another range is inside the bounds of this range
            /// </summary>
            /// <param name="Range">The child range to test</param>
            /// <returns>True if range is inside, else false</returns>
            public Boolean ContainsRange(Range<T> Range)
            {
                    return this.IsValid() && Range.IsValid() && this.ContainsValue(Range.Minimum) && this.ContainsValue(Range.Maximum);
            }
    }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C#

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC

    HTC

    12 Ocak 2006
  • Migs351

    Migs351

    3 HAZİRAN 2007
  • TheXiaxue

    TheXiaxue

    3 AĞUSTOS 2009