本文整理汇总了C#中Parameter.IsPrimitiveParameterConvertibleToRef方法的典型用法代码示例。如果您正苦于以下问题:C# Parameter.IsPrimitiveParameterConvertibleToRef方法的具体用法?C# Parameter.IsPrimitiveParameterConvertibleToRef怎么用?C# Parameter.IsPrimitiveParameterConvertibleToRef使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Parameter
的用法示例。
在下文中一共展示了Parameter.IsPrimitiveParameterConvertibleToRef方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckForDefaultPointer
private bool CheckForDefaultPointer(Type desugared, Parameter parameter)
{
if (desugared.IsPointer())
{
// IntPtr.Zero is not a constant
if (desugared.IsPointerToPrimitiveType(PrimitiveType.Void))
{
parameter.DefaultArgument.String = "new global::System.IntPtr()";
return true;
}
if (parameter.IsPrimitiveParameterConvertibleToRef())
return false;
Class @class;
if (desugared.GetFinalPointee().TryGetClass(out @class) && @class.IsValueType)
{
parameter.DefaultArgument.String = string.Format("new {0}()",
new CSharpTypePrinter(Driver).VisitClassDecl(@class));
return true;
}
parameter.DefaultArgument.String = "null";
return true;
}
return false;
}
示例2: VisitParameterDecl
public override bool VisitParameterDecl(Parameter parameter)
{
if (parameter.Usage == ParameterUsage.Unknown || parameter.IsIn)
return base.VisitParameterDecl(parameter);
var ctx = new CSharpMarshalContext(Context.Driver)
{
ReturnType = Context.ReturnType,
ReturnVarName = Context.ReturnVarName
};
var marshal = new CSharpMarshalNativeToManagedPrinter(ctx);
parameter.Type.Visit(marshal);
if (!string.IsNullOrWhiteSpace(ctx.SupportBefore))
Context.SupportBefore.WriteLine(ctx.SupportBefore);
if (!string.IsNullOrWhiteSpace(ctx.Return) && !parameter.IsPrimitiveParameterConvertibleToRef())
{
Context.SupportBefore.WriteLine("var _{0} = {1};", parameter.Name,
ctx.Return);
}
Context.Return.Write("{0}{1}",
parameter.IsPrimitiveParameterConvertibleToRef() ? "ref *" : "_", parameter.Name);
return true;
}