36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
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();
|
|
}
|
|
}
|