Files
PineSript/PineScript/PineStateVars.cs

36 lines
1.3 KiB
C#
Raw Normal View History

2026-04-25 17:32:49 +09:00
namespace PineScriptV6
{
/// <summary>
/// Pine Script의 var 선언 변수 및 := 재할당 변수를 저장합니다.
/// 봉 간에 상태가 유지됩니다 (inLong, inShort 등).
/// </summary>
public static class PineStateVars
{
private static readonly Dictionary<string, object?> _vars = new();
/// <summary>
/// var 선언 전용 — 최초 1회만 초기화 (이미 존재하면 무시)
/// </summary>
public static void Declare(string name, object? initialValue)
{
if (!_vars.ContainsKey(name))
_vars[name] = initialValue;
}
/// <summary>일반 대입 / := 재할당 모두 사용</summary>
public static void Set(string name, object? value) => _vars[name] = value;
public static object? Get(string name) =>
_vars.TryGetValue(name, out var v) ? v : null;
public static bool Has(string name) => _vars.ContainsKey(name);
/// <summary>단일 딕셔너리 조회 — Has+Get 이중 조회 대신 사용</summary>
public static bool TryGet(string name, out object? value) =>
_vars.TryGetValue(name, out value);
/// <summary>전체 초기화 (재실행 시)</summary>
public static void Clear() => _vars.Clear();
}
}