본문으로 건너뛰기

테이블 하나

시트가 코드가 되는 모습으로


가장 작은 테이블부터 봅니다. 여기서 읽는 것이 나머지 전부의 바탕입니다.

컬럼 넷짜리 테이블입니다. :field 가 이름을, :type 이 타입을, :desc 가 설명을 정하고, 마커 열이 빈 행부터가 데이터입니다.

첫 필드 컬럼이 기본 인덱스입니다. 여기서는 index 가 그것입니다.

테이블 Potion

[System.Serializable]
public partial class PotionRecord
{
#region Values
/// <summary>
/// primary index
/// </summary>
public int Index => _index;

/// <summary>
/// display name
/// </summary>
public string Name => _name;

/// <summary>
/// how rare
/// </summary>
public global::Tabbit.Fixtures.DocShowcase.Rarity Rarity => _rarity;

/// <summary>
/// shop price
/// </summary>
public int Price => _price;
#endregion

#region Storage
internal int _index;
internal string _name = "";
internal global::Tabbit.Fixtures.DocShowcase.Rarity _rarity;
internal int _price;
#endregion

#region ToString
public override string ToString()
{
var sb = new StringBuilder("{");
sb.Append("\"Index\":"); ToStringHelper.ToString(Index, sb);
sb.Append(",\"Name\":"); ToStringHelper.ToString(Name, sb);
sb.Append(",\"Rarity\":"); ToStringHelper.ToString(Rarity, sb);
sb.Append(",\"Price\":"); ToStringHelper.ToString(Price, sb);
sb.Append("}");
return sb.ToString();
}
#endregion
}

PotionTable.cs

읽을 것이 셋 있습니다.

  • 컬럼 하나가 멤버 하나입니다. 이름은 각 언어의 관례를 따라 바뀌지만 순서는 시트의 순서 그대로입니다.
  • :desc 에 적은 설명이 doc comment로 나갑니다. 시트에 적어 두면 IDE의 툴팁까지 갑니다.
  • Rarity 컬럼의 타입이 enum 타입입니다. 정수가 아닙니다 — 시트에 Common 이라고 적고 코드에서도 Rarity 로 받습니다.

조회 함수는 여기 없습니다. 레코드는 값이고, 찾는 일은 테이블이 합니다 — 행을 찾는 방법에 있습니다.