本文整理汇总了C#中ExpressionStatement.GetRegion方法的典型用法代码示例。如果您正苦于以下问题:C# ExpressionStatement.GetRegion方法的具体用法?C# ExpressionStatement.GetRegion怎么用?C# ExpressionStatement.GetRegion使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExpressionStatement
的用法示例。
在下文中一共展示了ExpressionStatement.GetRegion方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VisitExpressionStatement
public override void VisitExpressionStatement(ExpressionStatement expressionStatement)
{
var resolveResult = ResolveWithConversion(expressionStatement.Expression);
if (resolveResult is InvocationResolveResult && ((InvocationResolveResult)resolveResult).Member is IMethod) {
var member = ((InvocationResolveResult)resolveResult).Member;
if (((IUnresolvedMethod)((InvocationResolveResult)resolveResult).Member.UnresolvedMember).IsPartialMethodDeclaration) { // This test is OK according to https://github.com/icsharpcode/NRefactory/issues/12
// Invocation of a partial method without definition - remove (yes, I too feel the arguments should be evaluated but the spec says no.
return;
}
var cas = member.Attributes.Where(a => a.AttributeType.FullName == "System.Diagnostics.ConditionalAttribute").Select(a => (string)a.PositionalArguments[0].ConstantValue).ToList();
if (cas.Count > 0) {
if (!cas.Any(x => _definedSymbols.Contains(x))) {
// Invocation of conditional method, but the symbol is not defined.
return;
}
}
}
var compiled = _expressionCompiler.Compile(expressionStatement.GetRegion().FileName, expressionStatement.StartLocation, resolveResult, false);
_result.AddRange(compiled.AdditionalStatements);
_result.Add(new JsExpressionStatement(compiled.Expression));
}