C \ # 원조 Pair Triplet Tuple
12322 단어 AIR
public sealed class Pair
{
// Fields
public object First;
public object Second;
// Methods
public Pair()
{
}
public Pair(object x, object y)
{
this.First = x;
this.Second = y;
}
}
[Serializable]
public sealed class Triplet
{
// Fields
public object First;
public object Second;
public object Third;
// Methods
public Triplet()
{
}
public Triplet(object x, object y)
{
this.First = x;
this.Second = y;
}
public Triplet(object x, object y, object z)
{
this.First = x;
this.Second = y;
this.Third = z;
}
}
이상 두 개의 동 동 은 2 개, 3 개의 속성 을 나타 내 는 직렬 화 대상 이다.하지만 이들 의 속성 은 모두 object 이 며, 네 임 스페이스 는 System. Web. UI 입 니 다. 즉, System. Web. dll 에 있 습 니 다.
네.net 4.0 에서 C \ # Tuple 이 1 - 8 개의 강 한 유형 속성 을 표시 할 수 있 는 대상 을 추 가 했 습 니 다. mscorlib. dll 의 System 네 임 스페이스 에서
public static class Tuple
{
// Methods
internal static int CombineHashCodes(int h1, int h2)
{
return (((h1 << 5) + h1) ^ h2);
}
internal static int CombineHashCodes(int h1, int h2, int h3)
{
return CombineHashCodes(CombineHashCodes(h1, h2), h3);
}
internal static int CombineHashCodes(int h1, int h2, int h3, int h4)
{
return CombineHashCodes(CombineHashCodes(h1, h2), CombineHashCodes(h3, h4));
}
internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), h5);
}
internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6));
}
internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7));
}
internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7, h8));
}
public static Tuple<T1> Create<T1>(T1 item1)
{
return new Tuple<T1>(item1);
}
public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2)
{
return new Tuple<T1, T2>(item1, item2);
}
public static Tuple<T1, T2, T3> Create<T1, T2, T3>(T1 item1, T2 item2, T3 item3)
{
return new Tuple<T1, T2, T3>(item1, item2, item3);
}
public static Tuple<T1, T2, T3, T4> Create<T1, T2, T3, T4>(T1 item1, T2 item2, T3 item3, T4 item4)
{
return new Tuple<T1, T2, T3, T4>(item1, item2, item3, item4);
}
public static Tuple<T1, T2, T3, T4, T5> Create<T1, T2, T3, T4, T5>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)
{
return new Tuple<T1, T2, T3, T4, T5>(item1, item2, item3, item4, item5);
}
public static Tuple<T1, T2, T3, T4, T5, T6> Create<T1, T2, T3, T4, T5, T6>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6)
{
return new Tuple<T1, T2, T3, T4, T5, T6>(item1, item2, item3, item4, item5, item6);
}
public static Tuple<T1, T2, T3, T4, T5, T6, T7> Create<T1, T2, T3, T4, T5, T6, T7>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7)
{
return new Tuple<T1, T2, T3, T4, T5, T6, T7>(item1, item2, item3, item4, item5, item6, item7);
}
public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8)
{
return new Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>>(item1, item2, item3, item4, item5, item6, item7, new Tuple<T8>(item8));
}
}
그 중의 Tuple <... > 은 모두 [Serializable] 속성 이 서열 화 될 수 있 음 을 나타 낸다.이 를 통 해 알 수 있 듯 이 Tuple 은 간단 한 공장 일 뿐 입 니 다. 이 를 사용 하면 Tuple <... > 유형의 대상 을 만 들 수 있 습 니 다.사용 에 대해 서 는 더 이상 말씀 드 리 지 않 겠 습 니 다. 개인 적 으로 는 Pair 와 Triplet 대신 Tuple 을 사용 하 는 것 이 좋 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ExtJs 3.2.2 페이지 포함 플레이어ExtJs 3.2.2 페이지 포함 플레이어 이전 글에서 언급한 노래의 업로드는 업로드 후 노래에 대한 심사가 필요하고 그 과정에서 오디오에 대한 오디션이 필요하다. 이 기능은 아직 어떻게 실현해야 할지 말하지 않았지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.