本文整理汇总了C#中System.TString类的典型用法代码示例。如果您正苦于以下问题:C# TString类的具体用法?C# TString怎么用?C# TString使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TString类属于System命名空间,在下文中一共展示了TString类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PrintString
//#define Sizeof(x) ((int)sizeof(x))
//#define VOID(p) ((const void*)(p))
public static void PrintString(TString ts)
{
CharPtr s=GetStr(ts);
uint i,n=ts.tsv.len;
putchar('"');
for (i=0; i<n; i++)
{
int c=s[i];
switch (c)
{
case '"': printf("\\\""); break;
case '\\': printf("\\\\"); break;
case '\a': printf("\\a"); break;
case '\b': printf("\\b"); break;
case '\f': printf("\\f"); break;
case '\n': printf("\\n"); break;
case '\r': printf("\\r"); break;
case '\t': printf("\\t"); break;
case '\v': printf("\\v"); break;
default: if (isprint((byte)c))
putchar(c);
else
printf("\\%03u",(byte)c);
break;
}
}
putchar('"');
}
示例2: newlstr
public static TString newlstr (lua_State L, CharPtr str, uint l,
uint h) {
TString ts;
stringtable tb;
if (l+1 > MAX_SIZET /GetUnmanagedSize(typeof(char)))
luaM_toobig(L);
ts = new TString(new char[l+1]);
AddTotalBytes(L, (int)(l + 1) * GetUnmanagedSize(typeof(char)) + GetUnmanagedSize(typeof(TString)));
ts.tsv.len = l;
ts.tsv.hash = h;
ts.tsv.marked = luaC_white(G(L));
ts.tsv.tt = LUA_TSTRING;
ts.tsv.reserved = 0;
//memcpy(ts+1, str, l*GetUnmanagedSize(typeof(char)));
memcpy(ts.str.chars, str.chars, str.index, (int)l);
ts.str[l] = '\0'; /* ending 0 */
tb = G(L).strt;
h = (uint)lmod(h, tb.size);
ts.tsv.next = tb.hash[h]; /* chain new entry */
tb.hash[h] = obj2gco(ts);
tb.nuse++;
if ((tb.nuse > (int)tb.size) && (tb.size <= MAX_INT/2))
luaS_resize(L, tb.size*2); /* too crowded */
return ts;
}
示例3: luaT_gettm
/*
** function to be used with macro "fasttm": optimized for absence of
** tag methods
*/
public static TValue luaT_gettm (Table events, TMS event_, TString ename) {
/*const*/ TValue tm = luaH_getstr(events, ename);
LuaAssert(event_ <= TMS.TM_EQ);
if (TTIsNil(tm)) { /* no tag method? */
events.flags |= (byte)(1<<(int)event_); /* cache this fact */
return null;
}
else return tm;
}
示例4: StringMark
public static void StringMark(TString s)
{
Reset2Bits(ref s.tsv.marked, WHITE0BIT, WHITE1BIT);
}
示例5: singlevaraux
private static expkind singlevaraux(FuncState fs, TString n, expdesc var, int base_)
{
if (fs == null) { /* no more levels? */
init_exp(var, expkind.VGLOBAL, NO_REG); /* default is global variable */
return expkind.VGLOBAL;
}
else {
int v = searchvar(fs, n); /* look up at current level */
if (v >= 0) {
init_exp(var, expkind.VLOCAL, v);
if (base_==0)
markupval(fs, v); /* local will be used as an upval */
return expkind.VLOCAL;
}
else { /* not found at current level; try upper one */
if (singlevaraux(fs.prev, n, var, 0) == expkind.VGLOBAL)
return expkind.VGLOBAL;
var.u.s.info = indexupvalue(fs, n, var); /* else was LOCAL or UPVAL */
var.k = expkind.VUPVAL; /* upvalue in this level */
return expkind.VUPVAL;
}
}
}
示例6: LoadFunction
private static Proto LoadFunction(LoadState S, TString p)
{
Proto f;
if (++S.L.nCcalls > LUAI_MAXCCALLS) error(S,"code too deep");
f=luaF_newproto(S.L);
setptvalue2s(S.L,S.L.top,f); incr_top(S.L);
f.source=LoadString(S); if (f.source==null) f.source=p;
f.linedefined=LoadInt(S);
f.lastlinedefined=LoadInt(S);
f.nups=LoadByte(S);
f.numparams=LoadByte(S);
f.is_vararg=LoadByte(S);
f.maxstacksize=LoadByte(S);
LoadCode(S,f);
LoadConstants(S,f);
LoadDebug(S,f);
IF (luaG_checkcode(f)==0 ? 1 : 0, "bad code");
StkId.dec(ref S.L.top);
S.L.nCcalls--;
return f;
}
示例7: luaS_fix
public static void luaS_fix(TString s)
{
lu_byte marked = s.tsv.marked; // can't pass properties in as ref
l_setbit(ref marked, FIXEDBIT);
s.tsv.marked = marked;
}
示例8: new_localvar
private static void new_localvar(LexState ls, TString name, int n)
{
FuncState fs = ls.fs;
luaY_checklimit(fs, fs.nactvar+n+1, LUAI_MAXVARS, "local variables");
fs.actvar[fs.nactvar+n] = (ushort)registerlocalvar(ls, name);
}
示例9: GetStr
public static CharPtr GetStr(TString ts)
{
return ts.str;
}
示例10: setsvalue2s
//#define setsvalue2s setsvalue
internal static void setsvalue2s(lua_State L, TValue obj, TString x)
{
setsvalue(L, obj, x);
}
示例11: fornum
private static void fornum(LexState ls, TString varname, int line)
{
/* fornum . NAME = exp1,exp1[,exp1] forbody */
FuncState fs = ls.fs;
int base_ = fs.freereg;
new_localvarliteral(ls, "(for index)", 0);
new_localvarliteral(ls, "(for limit)", 1);
new_localvarliteral(ls, "(for step)", 2);
new_localvar(ls, varname, 3);
checknext(ls, '=');
exp1(ls); /* initial value */
checknext(ls, ',');
exp1(ls); /* limit */
if (testnext(ls, ',') != 0)
exp1(ls); /* optional step */
else { /* default step = 1 */
LuaKCodeABx(fs, OpCode.OP_LOADK, fs.freereg, LuaKNumberK(fs, 1));
LuaKReserveRegs(fs, 1);
}
forbody(ls, base_, line, 1, 1);
}
示例12: hashstr
public static Node hashstr(Table t, TString str)
{
return hashpow2(t, str.tsv.hash);
}
示例13: stringmark
public static void stringmark(TString s)
{
reset2bits(ref s.tsv.marked, WHITE0BIT, WHITE1BIT);
}
示例14: luaH_setstr
public static TValue luaH_setstr(lua_State L, Table t, TString key)
{
TValue p = luaH_getstr(t, key);
if (p != luaO_nilobject)
return (TValue)p;
else {
TValue k = new TValue();
setsvalue(L, k, key);
return newkey(L, t, k);
}
}
示例15: luaH_getstr
/*
** search function for strings
*/
public static TValue luaH_getstr(Table t, TString key)
{
Node n = hashstr(t, key);
do { /* check whether `key' is somewhere in the chain */
if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key)
return gval(n); /* that's it */
else n = gnext(n);
} while (n != null);
return luaO_nilobject;
}