当前位置: 首页>>代码示例>>C#>>正文


C# Parameter.Clone方法代码示例

本文整理汇总了C#中Parameter.Clone方法的典型用法代码示例。如果您正苦于以下问题:C# Parameter.Clone方法的具体用法?C# Parameter.Clone怎么用?C# Parameter.Clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Parameter的用法示例。


在下文中一共展示了Parameter.Clone方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TestClone

        public void TestClone()
        {
            IDataElement elem = new DataElement(new TranslateableLanguageItem("1"), new TranslateableLanguageItem("1"), DataType.String, "name");
            Parameter param = new Parameter(
                "param1", 
                 elem);

            IParameter copyOfParam = param.Clone() as IParameter;
            Assert.IsNotNull(copyOfParam);
            Assert.AreNotEqual(param.Identifier, copyOfParam.Identifier);
            Assert.AreEqual(param.ReadOnly, copyOfParam.ReadOnly);

            IDataElement copyOfElem = copyOfParam.Value;
            Assert.IsNotNull(copyOfElem);
            Assert.AreEqual(elem.Name.Value, copyOfElem.Name.Value);
            Assert.AreEqual(elem.DisplayName.Value, copyOfElem.DisplayName.Value);
            Assert.AreEqual(elem.Type, copyOfElem.Type);

            Assert.AreEqual("name", (string)copyOfElem.Data);
        }
开发者ID:killbug2004,项目名称:WSProf,代码行数:20,代码来源:TestParameter.cs

示例2: CreateArguments

		protected override void CreateArguments (ResolveContext ec, Parameter parameter, ref Arguments args)
		{
			args = new Arguments (4);

			if (IdentifierType != null)
				expr = CreateCastExpression (expr);

			args.Add (new Argument (expr));

			outer_selector.SetParameter (parameter.Clone ());
			var lambda = new LambdaExpression (outer_selector.StartLocation);
			lambda.Block = outer_selector;
			args.Add (new Argument (lambda));

			inner_selector.SetParameter (new ImplicitLambdaParameter (identifier.Name, identifier.Location));
			lambda = new LambdaExpression (inner_selector.StartLocation);
			lambda.Block = inner_selector;
			args.Add (new Argument (lambda));

			base.CreateArguments (ec, parameter, ref args);
		}
开发者ID:alisci01,项目名称:mono,代码行数:21,代码来源:linq.cs

示例3: CreateChildrenParameters

		protected override Parameter CreateChildrenParameters (Parameter parameter)
		{
			return new QueryBlock.TransparentParameter (parameter.Clone (), GetIntoVariable ());
		}
开发者ID:alisci01,项目名称:mono,代码行数:4,代码来源:linq.cs

示例4: CreateArguments

		protected override void CreateArguments (ResolveContext ec, Parameter parameter, ref Arguments args)
		{
			if (args == null) {
				if (IdentifierType != null)
					expr = CreateCastExpression (expr);

				base.CreateArguments (ec, parameter.Clone (), ref args);
			}

			Expression result_selector_expr;
			QueryBlock result_block;

			var target = GetIntoVariable ();
			var target_param = new ImplicitLambdaParameter (target.Name, target.Location);

			//
			// When select follows use it as a result selector
			//
			if (next is Select) {
				result_selector_expr = next.Expr;

				result_block = next.block;
				result_block.SetParameters (parameter, target_param);

				next = next.next;
			} else {
				result_selector_expr = CreateRangeVariableType (ec, parameter, target, new SimpleName (target.Name, target.Location));

				result_block = new QueryBlock (block.Parent, block.StartLocation);
				result_block.SetParameters (parameter, target_param);
			}

			LambdaExpression result_selector = new LambdaExpression (Location);
			result_selector.Block = result_block;
			result_selector.Block.AddStatement (new ContextualReturn (result_selector_expr));

			args.Add (new Argument (result_selector));
		}
开发者ID:RainsSoft,项目名称:playscript-monodevelop,代码行数:38,代码来源:linq.cs

示例5: VisitParameter

    public virtual Differences VisitParameter(Parameter parameter1, Parameter parameter2){
      Differences differences = new Differences(parameter1, parameter2);
      if (parameter1 == null || parameter2 == null){
        if (parameter1 != parameter2) differences.NumberOfDifferences++; else differences.NumberOfSimilarities++;
        return differences;
      }
      Parameter changes = (Parameter)parameter2.Clone();
      Parameter deletions = (Parameter)parameter2.Clone();
      Parameter insertions = (Parameter)parameter2.Clone();

      AttributeList attrChanges, attrDeletions, attrInsertions;
      Differences diff = this.VisitAttributeList(parameter1.Attributes, parameter2.Attributes, out attrChanges, out attrDeletions, out attrInsertions);
      if (diff == null){Debug.Assert(false); return differences;}
      changes.Attributes = attrChanges;
      deletions.Attributes = attrDeletions;
      insertions.Attributes = attrInsertions;
      differences.NumberOfDifferences += diff.NumberOfDifferences;
      differences.NumberOfSimilarities += diff.NumberOfSimilarities;

      diff = this.VisitExpression(parameter1.DefaultValue, parameter2.DefaultValue);
      if (diff == null){Debug.Assert(false); return differences;}
      changes.DefaultValue = diff.Changes as Expression;
      deletions.DefaultValue = diff.Deletions as Expression;
      insertions.DefaultValue = diff.Insertions as Expression;
      Debug.Assert(diff.Changes == changes.DefaultValue && diff.Deletions == deletions.DefaultValue && diff.Insertions == insertions.DefaultValue);
      differences.NumberOfDifferences += diff.NumberOfDifferences;
      differences.NumberOfSimilarities += diff.NumberOfSimilarities;

      if (parameter1.Flags == parameter2.Flags) differences.NumberOfSimilarities++; else differences.NumberOfDifferences++;
      if (this.ValuesAreEqual(parameter1.MarshallingInformation,parameter2.MarshallingInformation)) differences.NumberOfSimilarities++; else differences.NumberOfDifferences++;      

      diff = this.VisitIdentifier(parameter1.Name, parameter2.Name);
      if (diff == null){Debug.Assert(false); return differences;}
      changes.Name = diff.Changes as Identifier;
      deletions.Name = diff.Deletions as Identifier;
      insertions.Name = diff.Insertions as Identifier;
      Debug.Assert(diff.Changes == changes.Name && diff.Deletions == deletions.Name && diff.Insertions == insertions.Name);
      differences.NumberOfDifferences += diff.NumberOfDifferences;
      differences.NumberOfSimilarities += diff.NumberOfSimilarities;

      if (differences.NumberOfDifferences == 0){
        differences.Changes = null;
        differences.Deletions = null;
        differences.Insertions = null;
      }else{
        differences.Changes = changes;
        differences.Deletions = deletions;
        differences.Insertions = insertions;
      }
      return differences;
    }
开发者ID:tapicer,项目名称:resource-contracts-.net,代码行数:51,代码来源:Comparer.cs

示例6: VisitParameter

 public override Expression VisitParameter(Parameter parameter)
 {
     if (parameter == null) return null;
     Parameter dup = (Parameter)this.DuplicateFor[parameter.UniqueKey];
     if (dup != null)
     {
         if (dup.DeclaringMethod == null) dup.DeclaringMethod = this.TargetMethod;
         return dup;
     }
     this.DuplicateFor[parameter.UniqueKey] = dup = (Parameter)parameter.Clone();
     if (dup.MarshallingInformation != null)
         dup.MarshallingInformation = dup.MarshallingInformation.Clone();
     dup.DeclaringMethod = this.TargetMethod;
     return base.VisitParameter(dup);
 }
开发者ID:hnlshzx,项目名称:DotNetOpenAuth,代码行数:15,代码来源:Duplicator.cs

示例7: HashCodeForMinInt

        public void HashCodeForMinInt()
        {
            var parameter = new Parameter<int>();
            parameter.GetHashCode();

            var clonedParameter = (Parameter) parameter.Clone();

            // stack overflow was thrown
        }
开发者ID:lishxi,项目名称:_SharpMap,代码行数:9,代码来源:ParameterTest.cs

示例8: CloneDateTimeParameter

 public void CloneDateTimeParameter()
 {
     var dateTimeParameter = new Parameter<DateTime>("original parameter");
     dateTimeParameter.Value = new DateTime(2000,1,1);
     
     var clone = (Parameter<DateTime>)dateTimeParameter.Clone();
     
     Assert.AreEqual(dateTimeParameter.Value,clone.Value);
 }
开发者ID:lishxi,项目名称:_SharpMap,代码行数:9,代码来源:ParameterTest.cs

示例9: CloneParameter

        public void CloneParameter()
        {
            var parameter = new Parameter<int>("original parameter", new Unit("test quantity", "TQ"))
                                {ValueType = typeof (double)};

            var clonedParameter = (Parameter) parameter.Clone();

            Assert.AreEqual(parameter.Name, clonedParameter.Name);
            Assert.AreEqual(parameter.Unit,clonedParameter.Unit);
            Assert.AreEqual(parameter.ValueType,clonedParameter.ValueType);
        }
开发者ID:lishxi,项目名称:_SharpMap,代码行数:11,代码来源:ParameterTest.cs

示例10: CreateArguments

		protected virtual void CreateArguments (ResolveContext ec, Parameter parameter, ref Arguments args)
		{
			args = new Arguments (2);

			LambdaExpression selector = new LambdaExpression (loc);

			block.SetParameter (parameter.Clone ());
			selector.Block = block;
			selector.Block.AddStatement (new ContextualReturn (expr));

			args.Add (new Argument (selector));
		}
开发者ID:stabbylambda,项目名称:mono,代码行数:12,代码来源:linq.cs


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