本文整理汇总了C#中Datum.GetHashCode方法的典型用法代码示例。如果您正苦于以下问题:C# Datum.GetHashCode方法的具体用法?C# Datum.GetHashCode怎么用?C# Datum.GetHashCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Datum
的用法示例。
在下文中一共展示了Datum.GetHashCode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Format
// I thought of doing Format as a virtual method of Datum, but I
// prefer to keep all the formatting bundled up here.
public static string Format(Datum a)
{
if (a == null)
{
return "()";
}
else if (a is Symbol)
{
return (a as Symbol).name;
}
else if (a is Rational)
{
Rational r = (Rational)a;
return r.ToString();
}
else if (a is Boolean)
{
if ((a as Boolean).val == true)
return "#t";
else
return "#f";
}
else if (a is Pair)
{
StringBuilder fmt = new StringBuilder("(");
while (a is Pair)
{
Pair p = a as Pair;
fmt.Append(Format(p.car));
if (p.cdr != null)
fmt.Append(" ");
a = p.cdr;
}
if (a != null)
{
fmt.Append(". ");
fmt.Append(Format(a));
}
fmt.Append(")");
return fmt.ToString();
}
else if (a is Primitive)
{
return "#<primitive " + (a as Primitive).name + ">";
}
else if (a is Closure)
{
Closure c = a as Closure;
return "#<closure " + Format(c.formals) +
" " + Format(c.body) + ">";
}
else if (a is Continuation)
{
return "#<continuation " + a.GetHashCode() + ">";
}
else if (a is Unspecified)
{
return "#<unspecified>";
}
else if (a is SharpF.String)
{
return "\"" + (a as SharpF.String).val + "\"";
}
else
{
return "#<unprintable: " + a.ToString() + ">";
}
}