Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ParamsArray.cs
Go to the documentation of this file.
1namespace System;
2
3internal readonly struct ParamsArray
4{
5 private static readonly object[] s_oneArgArray = new object[1];
6
7 private static readonly object[] s_twoArgArray = new object[2];
8
9 private static readonly object[] s_threeArgArray = new object[3];
10
11 private readonly object _arg0;
12
13 private readonly object _arg1;
14
15 private readonly object _arg2;
16
17 private readonly object[] _args;
18
19 public int Length => _args.Length;
20
21 public object this[int index]
22 {
23 get
24 {
25 if (index != 0)
26 {
27 return GetAtSlow(index);
28 }
29 return _arg0;
30 }
31 }
32
33 public ParamsArray(object arg0)
34 {
35 _arg0 = arg0;
36 _arg1 = null;
37 _arg2 = null;
39 }
40
41 public ParamsArray(object arg0, object arg1)
42 {
43 _arg0 = arg0;
44 _arg1 = arg1;
45 _arg2 = null;
47 }
48
49 public ParamsArray(object arg0, object arg1, object arg2)
50 {
51 _arg0 = arg0;
52 _arg1 = arg1;
53 _arg2 = arg2;
55 }
56
57 public ParamsArray(object[] args)
58 {
59 int num = args.Length;
60 _arg0 = ((num > 0) ? args[0] : null);
61 _arg1 = ((num > 1) ? args[1] : null);
62 _arg2 = ((num > 2) ? args[2] : null);
63 _args = args;
64 }
65
66 private object GetAtSlow(int index)
67 {
68 return index switch
69 {
70 1 => _arg1,
71 2 => _arg2,
72 _ => _args[index],
73 };
74 }
75}
ParamsArray(object arg0)
static readonly object[] s_twoArgArray
Definition ParamsArray.cs:7
readonly object _arg1
object GetAtSlow(int index)
ParamsArray(object arg0, object arg1)
readonly object _arg0
readonly object[] _args
static readonly object[] s_threeArgArray
Definition ParamsArray.cs:9
ParamsArray(object arg0, object arg1, object arg2)
static readonly object[] s_oneArgArray
Definition ParamsArray.cs:5
ParamsArray(object[] args)
readonly object _arg2