• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# IStatement类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中IStatement的典型用法代码示例。如果您正苦于以下问题:C# IStatement类的具体用法?C# IStatement怎么用?C# IStatement使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IStatement类属于命名空间,在下文中一共展示了IStatement类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: TestTryCombine

 public static void TestTryCombine([PexAssumeUnderTest] StatementLoopOverGroupItems target, IStatement statement)
 {
     var canComb = target.TryCombineStatement(statement, null);
     Assert.IsNotNull(statement, "Second statement null should cause a failure");
     var allSame = target.CodeItUp().Zip(statement.CodeItUp(), (f, s) => f == s).All(t => t);
     Assert.IsTrue(allSame == canComb || target.Statements.Count() == 0, "not expected combination!");
 }
开发者ID:gordonwatts,项目名称:LINQtoROOT,代码行数:7,代码来源:StatementLoopOverGroupItemsTest.cs


示例2: CanHandle

    /// <summary>Determines whether this instance can handle the specified statement.</summary>
    /// <param name="statement">The statement.</param>
    /// <returns><c>true</c> if this instance can handle the specified statement; otherwise, <c>false</c>.</returns>
    public override bool CanHandle(IStatement statement)
    {
      var ifStatement = statement as IIfStatement;
      if (ifStatement == null)
      {
        return false;
      }

      var referenceExpression = ifStatement.Condition as IReferenceExpression;
      if (referenceExpression == null)
      {
        return false;
      }

      var resolveResult = referenceExpression.Reference.Resolve();
      if (!resolveResult.IsValid())
      {
        return false;
      }

      var declaredElement = resolveResult.DeclaredElement as ITypeMember;
      if (declaredElement == null)
      {
        return false;
      }

      return true;
    }
开发者ID:JakobChristensen,项目名称:Resharper.PredictiveCodeSuggestions,代码行数:31,代码来源:IfInvocationAnalyzer.cs


示例3: TestTryCombine

 public static void TestTryCombine([PexAssumeUnderTest] StatementRecordPairValues target, IStatement statement)
 {
     var canComb = target.TryCombineStatement(statement, null);
     Assert.IsNotNull(statement, "Second statement null should cause a failure");
     var allSame = target.CodeItUp().Zip(statement.CodeItUp(), (f, s) => f == s).All(t => t);
     Assert.AreEqual(allSame, canComb, "not expected combination!");
 }
开发者ID:gordonwatts,项目名称:LINQtoROOT,代码行数:7,代码来源:StatementRecordPairValuesTest.cs


示例4: CanHandle

    /// <summary>Determines whether this instance can handle the specified statement.</summary>
    /// <param name="statement">The statement.</param>
    /// <returns><c>true</c> if this instance can handle the specified statement; otherwise, <c>false</c>.</returns>
    public override bool CanHandle(IStatement statement)
    {
      var ifStatement = statement as IIfStatement;
      if (ifStatement == null)
      {
        return false;
      }

      var equalityExpression = ifStatement.Condition as IEqualityExpression;
      if (equalityExpression == null)
      {
        return false;
      }

      var operand = equalityExpression.RightOperand;
      if (operand == null)
      {
        return false;
      }

      if (operand.GetText() == "null")
      {
        return true;
      }

      operand = equalityExpression.LeftOperand;
      if (operand == null)
      {
        return false;
      }

      return operand.GetText() == "null";
    }
开发者ID:JakobChristensen,项目名称:Resharper.PredictiveCodeSuggestions,代码行数:36,代码来源:IfNullAnalyzer.cs


示例5: FindCurrentCaretContext

        public static ISyntaxRegion FindCurrentCaretContext(IEditorData editor, 
			ref IBlockNode currentScope, 
			out IStatement currentStatement,
			out bool isInsideNonCodeSegment)
        {
            isInsideNonCodeSegment = false;
            currentStatement = null;

            if(currentScope == null)
                currentScope = DResolver.SearchBlockAt (editor.SyntaxTree, editor.CaretLocation, out currentStatement);

            if (currentScope == null)
                return null;

            BlockStatement blockStmt;
            // Always skip lambdas as they're too quirky for accurate scope calculation // ISSUE: May be other anon symbols too?
            var dm = currentScope as DMethod;
            if (dm != null && (dm.SpecialType & DMethod.MethodType.Lambda) != 0)
                currentScope = dm.Parent as IBlockNode;

            if (currentScope is DMethod &&
                (blockStmt = (currentScope as DMethod).GetSubBlockAt (editor.CaretLocation)) != null) {
                blockStmt.UpdateBlockPartly (editor, out isInsideNonCodeSegment);
                currentScope = DResolver.SearchBlockAt (currentScope, editor.CaretLocation, out currentStatement);
            }else {
                while (currentScope is DMethod)
                    currentScope = currentScope.Parent as IBlockNode;
                if (currentScope == null)
                    return null;

                (currentScope as DBlockNode).UpdateBlockPartly (editor, out isInsideNonCodeSegment);
                currentScope = DResolver.SearchBlockAt (currentScope, editor.CaretLocation, out currentStatement);
            }
            return currentScope;
        }
开发者ID:rainers,项目名称:D_Parser,代码行数:35,代码来源:CodeCompletion.cs


示例6: Handle

    /// <summary>Handles the specified statement.</summary>
    /// <param name="statement">The statement.</param>
    /// <param name="scope">The scope.</param>
    /// <returns>Returns the string.</returns>
    public override StatementDescriptor Handle(IStatement statement, AutoTemplateScope scope)
    {
      var tryStatement = statement as ITryStatement;
      if (tryStatement == null)
      {
        return null;
      }

      var result = new StatementDescriptor(scope)
      {
        Template = string.Format("try {{ $END$ }}")
      };

      foreach (var catchClause in tryStatement.Catches)
      {
        var type = catchClause.ExceptionType;
        if (type == null)
        {
          result.Template += " catch { }";
          continue;
        }

        var typeName = type.GetLongPresentableName(tryStatement.Language);
        result.Template += string.Format(" catch ({0}) {{ }}", typeName);
      }

      return result;
    }
开发者ID:JakobChristensen,项目名称:Resharper.PredictiveCodeSuggestions,代码行数:32,代码来源:TryCatchTemplate.cs


示例7: Handle

    /// <summary>Handles the specified statement.</summary>
    /// <param name="statement">The statement.</param>
    /// <param name="scope">The scope.</param>
    /// <returns>Returns the string.</returns>
    public override StatementDescriptor Handle(IStatement statement, AutoTemplateScope scope)
    {
      var returnStatement = statement as IReturnStatement;
      if (returnStatement == null)
      {
        return null;
      }

      var value = returnStatement.Value;
      if (value == null)
      {
        return new StatementDescriptor(scope)
        {
          Template = "return;"
        };
      }

      var expressionDescriptor = ExpressionTemplateBuilder.Handle(value, scope.ScopeParameters);
      if (expressionDescriptor == null)
      {
        return null;
      }

      return new StatementDescriptor(scope, string.Format("return {0}", expressionDescriptor.Template), expressionDescriptor.TemplateVariables);
    }
开发者ID:JakobChristensen,项目名称:Resharper.PredictiveCodeSuggestions,代码行数:29,代码来源:ReturnTemplate.cs


示例8: Handle

    /// <summary>Handles the specified statement.</summary>
    /// <param name="statement">The statement.</param>
    /// <returns>Returns the I enumerable.</returns>
    public override AutoTemplateScope Handle(IStatement statement)
    {
      var expressionStatement = statement as IExpressionStatement;
      if (expressionStatement == null)
      {
        return null;
      }

      var assignmentExpression = expressionStatement.Expression as IAssignmentExpression;
      if (assignmentExpression == null)
      {
        return null;
      }

      var scopeParameters = new Dictionary<string, string>();
      if (!HandleAssignment(assignmentExpression, scopeParameters))
      {
        return null;
      }

      string variableType;
      if (!scopeParameters.TryGetValue("FullName", out variableType))
      {
        variableType = "(unknown variable)";
      }

      var key = string.Format("After variable of type \"{0}\"", variableType);

      return new AutoTemplateScope(statement, key, scopeParameters);
    }
开发者ID:JakobChristensen,项目名称:Resharper.PredictiveCodeSuggestions,代码行数:33,代码来源:AssignmentAnalyzer.cs


示例9: FirstStatementIsIteratorCreation

 private static IMethodBody/*?*/ FirstStatementIsIteratorCreation(IMetadataHost host, ISourceMethodBody possibleIterator, INameTable nameTable, IStatement statement) {
   ICreateObjectInstance createObjectInstance = GetICreateObjectInstance(statement);
   if (createObjectInstance == null) {
     // If the first statement in the method body is not the creation of iterator closure, return a dummy.
     // Possible corner case not handled: a local is used to hold the constant value for the initial state of the closure.
     return null;
   }
   ITypeReference closureType/*?*/ = createObjectInstance.MethodToCall.ContainingType;
   ITypeReference unspecializedClosureType = ContractHelper.Unspecialized(closureType);
   if (!AttributeHelper.Contains(unspecializedClosureType.Attributes, host.PlatformType.SystemRuntimeCompilerServicesCompilerGeneratedAttribute))
     return null;
   INestedTypeReference closureTypeAsNestedTypeReference = unspecializedClosureType as INestedTypeReference;
   if (closureTypeAsNestedTypeReference == null) return null;
   ITypeReference unspecializedClosureContainingType = ContractHelper.Unspecialized(closureTypeAsNestedTypeReference.ContainingType);
   if (closureType != null && TypeHelper.TypesAreEquivalent(possibleIterator.MethodDefinition.ContainingTypeDefinition, unspecializedClosureContainingType)) {
     IName MoveNextName = nameTable.GetNameFor("MoveNext");
     foreach (ITypeDefinitionMember member in closureType.ResolvedType.GetMembersNamed(MoveNextName, false)) {
       IMethodDefinition moveNext = member as IMethodDefinition;
       if (moveNext != null) {
         ISpecializedMethodDefinition moveNextGeneric = moveNext as ISpecializedMethodDefinition;
         if (moveNextGeneric != null)
           moveNext = moveNextGeneric.UnspecializedVersion.ResolvedMethod;
         return moveNext.Body;
       }
     }
   }
   return null;
 }
开发者ID:Refresh06,项目名称:visualmutator,代码行数:28,代码来源:MoveNext.cs


示例10: Insert

 public Task Insert(IStatement statement)
 {
     _queriesWaitingInLineSemaphore.Wait(); // Since the dataset does not fit in memory, we limit the pending queries count
     var taskCompletionSource = new TaskCompletionSource<RowSet>();
     _insertionQueue.Post(new PendingInsert { Statement = statement, Completion = taskCompletionSource });
     return taskCompletionSource.Task;
 }
开发者ID:Abc-Arbitrage,项目名称:cassandra-drivers-benchmark,代码行数:7,代码来源:ParallelPersistor.cs


示例11: MemberCompletionProvider

 public MemberCompletionProvider(ICompletionDataGenerator cdg, ISyntaxRegion sr, IBlockNode b, IStatement stmt)
     : base(cdg)
 {
     AccessExpression = sr;
     ScopedBlock = b;
     ScopedStatement = stmt;
 }
开发者ID:rainers,项目名称:D_Parser,代码行数:7,代码来源:MemberCompletionProvider.cs


示例12: ForStatement

 public ForStatement(IExpression initialization, IExpression condition, IExpression step, IStatement statement)
     : base(statement)
 {
     this.initialization = initialization;
     this.condition = condition;
     this.step = step;
 }
开发者ID:langpavel,项目名称:LPS-old,代码行数:7,代码来源:ForStatement.cs


示例13: AddStatement

        public void AddStatement(IStatement statement)
        {
            if (statement == null)
                throw new ArgumentNullException("statement");

            statements.Add(statement);
        }
开发者ID:bossaia,项目名称:alexandrialibrary,代码行数:7,代码来源:ComplexCommandBuilder.cs


示例14: ProcedureSql

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="statement">The statement.</param>
        /// <param name="sqlStatement"></param>
        /// <param name="scope"></param>
        public ProcedureSql(IScope scope, string sqlStatement, IStatement statement)
        {
            _sqlStatement = sqlStatement;
            _statement = statement;

            _dataExchangeFactory = scope.DataExchangeFactory;
        }
开发者ID:hejiquan,项目名称:iBATIS_2010,代码行数:13,代码来源:ProcedureSql.cs


示例15: ContextFrame

        public ContextFrame(ResolutionContext ctxt, IBlockNode b, IStatement stmt = null)
        {
            this.ctxt = ctxt;
            declarationCondititons = new ConditionalCompilation.ConditionSet(ctxt.CompilationEnvironment);

            Set(b,stmt);
        }
开发者ID:DinrusGroup,项目名称:DRC,代码行数:7,代码来源:ContextFrame.cs


示例16: CtrlSpaceCompletionProvider

 public CtrlSpaceCompletionProvider(ICompletionDataGenerator cdg, IBlockNode b, IStatement stmt, MemberFilter vis = MemberFilter.All)
     : base(cdg)
 {
     this.curBlock = b;
     this.curStmt = stmt;
     visibleMembers = vis;
 }
开发者ID:Extrawurst,项目名称:D_Parser,代码行数:7,代码来源:CtrlSpaceCompletionProvider.cs


示例17: Handle

 /// <summary>Handles the specified statement.</summary>
 /// <param name="statement">The statement.</param>
 /// <param name="scope">The scope.</param>
 /// <returns>Returns the string.</returns>
 public override StatementDescriptor Handle(IStatement statement, AutoTemplateScope scope)
 {
   return new StatementDescriptor(scope)
   {
     Template = "continue;"
   };
 }
开发者ID:JakobChristensen,项目名称:Resharper.PredictiveCodeSuggestions,代码行数:11,代码来源:ContinueTemplate.cs


示例18: TryCombineStatement

 public bool TryCombineStatement(IStatement statement, ICodeOptimizationService optimize)
 {
     var otherRtn = statement as StatementReturn;
     if (otherRtn == null)
         return false;
     return otherRtn._rtnValue.RawValue == _rtnValue.RawValue;
 }
开发者ID:gordonwatts,项目名称:LINQtoROOT,代码行数:7,代码来源:StatementReturn.cs


示例19: BuildDeleteQuery

        /// <summary>
        /// Creates an delete SQL command text for a specified statement
        /// </summary>
        /// <param name="statement">The statement to build the SQL command text.</param>
        /// <returns>The SQL command text for the statement.</returns>
        private static string BuildDeleteQuery(IStatement statement)
        {
            StringBuilder output = new StringBuilder();
            Delete delete = (Delete) statement;
            string[] keysList = delete.Generate.By.Split(',');

            output.Append("DELETE FROM");
            output.Append("\t" + delete.Generate.Table + "");
            output.Append(" WHERE ");

            // Create the where clause
            int length = keysList.Length;
            for (int i = 0; i < keysList.Length; i++)
            {
                string columnName = keysList[i].Trim();

                if (i > 0)
                {
                    output.Append("\tAND " + columnName + " = ?");
                }
                else
                {
                    output.Append("\t " + columnName + " = ?");
                }
            }

            return output.ToString();
        }
开发者ID:wangsying,项目名称:SpiderJobs,代码行数:33,代码来源:SqlGenerator.cs


示例20: TryCombineStatement

        /// <summary>
        /// Try to combine two assign statements. Since this will be for totally
        /// trivial cases, this should be "easy" - only when they are the same.
        /// </summary>
        /// <param name="statement"></param>
        /// <returns></returns>
        public bool TryCombineStatement(IStatement statement, ICodeOptimizationService opt)
        {
            if (statement == null)
                throw new ArgumentNullException("statement");

            if (opt == null)
                throw new ArgumentNullException("opt");

            var otherAssign = statement as StatementAssign;
            if (otherAssign == null)
                return false;

            if (Expression.RawValue != otherAssign.Expression.RawValue)
                return false;

            // If the statements are identical, then we can combine by default without having to do any
            // further work.

            if (otherAssign.ResultVariable.RawValue == ResultVariable.RawValue)
                return true;

            // If we have declared, then we are sole owner - so we can force the change. Otherwise, we
            // need to let the infrastructure figure out where the declared is and change it from there.

            return opt.TryRenameVarialbeOneLevelUp(otherAssign.ResultVariable.RawValue, ResultVariable);
        }
开发者ID:gordonwatts,项目名称:LINQtoROOT,代码行数:32,代码来源:StatementAssign.cs



注:本文中的IStatement类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# IStaticDataSource类代码示例发布时间:2022-05-24
下一篇:
C# IStateProvinceService类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap