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

C# Symbols.ParameterSymbol类代码示例

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

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



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

示例1: SubstitutedParameterSymbol

 private SubstitutedParameterSymbol(Symbol containingSymbol, TypeMap map, ParameterSymbol originalParameter) :
     base(originalParameter)
 {
     Debug.Assert(originalParameter.IsDefinition);
     _containingSymbol = containingSymbol;
     _mapOrType = map;
 }
开发者ID:CAPCHIK,项目名称:roslyn,代码行数:7,代码来源:SubstitutedParameterSymbol.cs


示例2: DisplayClassInstanceFromParameter

 internal DisplayClassInstanceFromParameter(ParameterSymbol parameter)
 {
     Debug.Assert((object)parameter != null);
     Debug.Assert(parameter.Name.EndsWith("this", StringComparison.Ordinal) ||
         GeneratedNames.GetKind(parameter.Name) == GeneratedNameKind.TransparentIdentifier);
     this.Parameter = parameter;
 }
开发者ID:Rickinio,项目名称:roslyn,代码行数:7,代码来源:DisplayClassInstance.cs


示例3: Rewrite

 internal static BoundNode Rewrite(
     ParameterSymbol targetMethodThisParameter,
     Conversions conversions,
     ImmutableDictionary<string, DisplayClassVariable> displayClassVariables,
     BoundNode node,
     DiagnosticBag diagnostics)
 {
     var rewriter = new CapturedVariableRewriter(targetMethodThisParameter, conversions, displayClassVariables, diagnostics);
     return rewriter.Visit(node);
 }
开发者ID:CAPCHIK,项目名称:roslyn,代码行数:10,代码来源:CapturedVariableRewriter.cs


示例4: CapturedVariableRewriter

 private CapturedVariableRewriter(
     ParameterSymbol targetMethodThisParameter,
     Conversions conversions,
     ImmutableDictionary<string, DisplayClassVariable> displayClassVariables,
     DiagnosticBag diagnostics)
 {
     _targetMethodThisParameter = targetMethodThisParameter;
     _conversions = conversions;
     _displayClassVariables = displayClassVariables;
     _diagnostics = diagnostics;
 }
开发者ID:CAPCHIK,项目名称:roslyn,代码行数:11,代码来源:CapturedVariableRewriter.cs


示例5: TryGetThisParameter

        internal override bool TryGetThisParameter(out ParameterSymbol thisParameter)
        {
            Debug.Assert(!IsStatic);

            if ((object)_lazyThisParameter == null)
            {
                Interlocked.CompareExchange(ref _lazyThisParameter, new ThisParameterSymbol(this), null);
            }

            thisParameter = _lazyThisParameter;
            return true;
        }
开发者ID:CAPCHIK,项目名称:roslyn,代码行数:12,代码来源:SynthesizedInstanceMethodSymbol.cs


示例6: TryGetThisParameter

        internal override bool TryGetThisParameter(out ParameterSymbol thisParameter)
        {
            if (IsStatic)
            {
                thisParameter = null;
                return true;
            }

            if ((object)lazyThisParameter == null)
            {
                Interlocked.CompareExchange(ref lazyThisParameter, new ThisParameterSymbol(this), null);
            }

            thisParameter = lazyThisParameter;
            return true;
        }
开发者ID:jerriclynsjohn,项目名称:roslyn,代码行数:16,代码来源:SynthesizedInstanceMethodSymbol.cs


示例7: AnonymousTypeConstructorSymbol

 internal AnonymousTypeConstructorSymbol(NamedTypeSymbol container, ImmutableArray<AnonymousTypePropertySymbol> properties)
     : base(container, WellKnownMemberNames.InstanceConstructorName)
 {
     // Create constructor parameters
     int fieldsCount = properties.Length;
     if (fieldsCount > 0)
     {
         ParameterSymbol[] paramsArr = new ParameterSymbol[fieldsCount];
         for (int index = 0; index < fieldsCount; index++)
         {
             PropertySymbol property = properties[index];
             paramsArr[index] = new SynthesizedParameterSymbol(this, property.Type, index, RefKind.None, property.Name);
         }
         _parameters = paramsArr.AsImmutableOrNull();
     }
     else
     {
         _parameters = ImmutableArray<ParameterSymbol>.Empty;
     }
 }
开发者ID:SoumikMukherjeeDOTNET,项目名称:roslyn,代码行数:20,代码来源:AnonymousType.ConstructorSymbol.cs


示例8: VerifyParamArrayAttribute

        internal static void VerifyParamArrayAttribute(ParameterSymbol parameter, SourceModuleSymbol module, bool expected = true, OutputKind outputKind = OutputKind.ConsoleApplication)
        {
            Assert.Equal(expected, parameter.IsParams);

            var emitModule = new PEAssemblyBuilder(module.ContainingSourceAssembly, null, outputKind, GetDefaultModulePropertiesForSerialization(), SpecializedCollections.EmptyEnumerable<ResourceDescription>());
            var paramArrayAttributeCtor = (MethodSymbol)emitModule.Compilation.GetWellKnownTypeMember(WellKnownMember.System_ParamArrayAttribute__ctor);
            bool found = false;

            var context = new EmitContext(emitModule, null, new DiagnosticBag());

            foreach (Microsoft.Cci.ICustomAttribute attr in parameter.GetSynthesizedAttributes())
            {
                if (paramArrayAttributeCtor == (MethodSymbol)attr.Constructor(context))
                {
                    Assert.False(found, "Multiple ParamArrayAttribute");
                    found = true;
                }
            }

            Assert.Equal(expected, found);
            context.Diagnostics.Verify();
        }
开发者ID:modulexcite,项目名称:pattern-matching-csharp,代码行数:22,代码来源:WellKnownAttributesTestBase.cs


示例9: RetargetParameters

        private ImmutableArray<ParameterSymbol> RetargetParameters()
        {
            var list = this.underlyingMethod.Parameters;
            int count = list.Length;

            if (count == 0)
            {
                return ImmutableArray<ParameterSymbol>.Empty;
            }
            else
            {
                ParameterSymbol[] parameters = new ParameterSymbol[count];

                for (int i = 0; i < count; i++)
                {
                    parameters[i] = new RetargetingMethodParameterSymbol(this, list[i]);
                }

                return parameters.AsImmutableOrNull();
            }
        }
开发者ID:riversky,项目名称:roslyn,代码行数:21,代码来源:RetargetingMethodSymbol.cs


示例10: EnterParameter

 protected override void EnterParameter(ParameterSymbol parameter)
 {
     // parameters are NOT intitially assigned here - if that is a problem, then
     // the parameters must be captured.
     GetOrCreateSlot(parameter);
 }
开发者ID:ehsansajjad465,项目名称:roslyn,代码行数:6,代码来源:IteratorAndAsyncCaptureWalker.cs


示例11: CanBeOptional

        private static bool CanBeOptional(ParameterSymbol parameter, bool isMethodGroupConversion)
        {
            // NOTE: Section 6.6 will be slightly updated:
            //
            //   - The candidate methods considered are only those methods that are applicable in their
            //     normal form (§7.5.3.1), and do not omit any optional parameters. Thus, candidate methods
            //     are ignored if they are applicable only in their expanded form, or if one or more of their
            //     optional parameters do not have a corresponding parameter in the targeted delegate type.
            //   
            // Therefore, no parameters are optional when performing method group conversion.  Alternatively,
            // we could eliminate methods based on the number of arguments, but then we wouldn't be able to
            // fall back on them if no other candidates were available.

            var refKind = parameter.RefKind;
            return !isMethodGroupConversion && parameter.IsOptional &&
                (refKind == RefKind.None ||
                 (refKind == RefKind.Ref && parameter.ContainingSymbol.ContainingType.IsComImport));
        }
开发者ID:GeertVL,项目名称:roslyn,代码行数:18,代码来源:OverloadResolution_ArgsToParameters.cs


示例12: CopyParameter

 private static ParameterSymbol CopyParameter(ParameterSymbol parameter, MethodSymbol owner)
 {
     return new SynthesizedParameterSymbol(
         owner,
         parameter.Type,
         parameter.Ordinal,
         parameter.RefKind,
         GeneratedNames.LambdaCopyParameterName(parameter)); // Make sure nothing binds to this.
 }
开发者ID:Rickinio,项目名称:roslyn,代码行数:9,代码来源:LambdaSymbol.cs


示例13: ReportUnassignedOutParameter

 protected override void ReportUnassignedOutParameter(ParameterSymbol parameter, CSharpSyntaxNode node, Location location)
 {
     if (!dataFlowsOut.Contains(parameter) && (node == null || node is ReturnStatementSyntax))
     {
         dataFlowsOut.Add(parameter);
     }
     base.ReportUnassignedOutParameter(parameter, node, location);
 }
开发者ID:jerriclynsjohn,项目名称:roslyn,代码行数:8,代码来源:DataFlowsOutWalker.cs


示例14: ParameterTypeInformation

        public ParameterTypeInformation(ParameterSymbol underlyingParameter)
        {
            Debug.Assert((object)underlyingParameter != null);

            this.UnderlyingParameter = underlyingParameter;
        }
开发者ID:pheede,项目名称:roslyn,代码行数:6,代码来源:ParameterTypeInformation.cs


示例15: GetParamArrayArgument

        private static TypedConstant GetParamArrayArgument(ParameterSymbol parameter, ImmutableArray<TypedConstant> constructorArgsArray, int argumentsCount, int argsConsumedCount, Conversions conversions)
        {
            Debug.Assert(argsConsumedCount <= argumentsCount);

            int paramArrayArgCount = argumentsCount - argsConsumedCount;
            if (paramArrayArgCount == 0)
            {
                return new TypedConstant(parameter.Type, ImmutableArray<TypedConstant>.Empty);
            }

            // If there's exactly one argument and it's an array of an appropriate type, then just return it.
            if (paramArrayArgCount == 1 && constructorArgsArray[argsConsumedCount].Kind == TypedConstantKind.Array)
            {
                TypeSymbol argumentType = (TypeSymbol)constructorArgsArray[argsConsumedCount].Type;

                // Easy out (i.e. don't both classifying conversion).
                if (argumentType == parameter.Type)
                {
                    return constructorArgsArray[argsConsumedCount];
                }

                HashSet<DiagnosticInfo> useSiteDiagnostics = null; // ignoring, since already bound argument and parameter
                Conversion conversion = conversions.ClassifyConversion(argumentType, parameter.Type, ref useSiteDiagnostics, builtinOnly: true);

                // NOTE: Won't always succeed, even though we've performed overload resolution.
                // For example, passing int[] to params object[] actually treats the int[] as an element of the object[].
                if (conversion.IsValid && conversion.Kind == ConversionKind.ImplicitReference)
                {
                    return constructorArgsArray[argsConsumedCount];
                }
            }

            Debug.Assert(!constructorArgsArray.IsDefault);
            Debug.Assert(argsConsumedCount <= constructorArgsArray.Length);

            var values = new TypedConstant[paramArrayArgCount];

            for (int i = 0; i < paramArrayArgCount; i++)
            {
                values[i] = constructorArgsArray[argsConsumedCount++];
            }

            return new TypedConstant(parameter.Type, values.AsImmutableOrNull());
        }
开发者ID:RoryVL,项目名称:roslyn,代码行数:44,代码来源:Binder_Attributes.cs


示例16: Parameter

 public BoundParameter Parameter(ParameterSymbol p)
 {
     return new BoundParameter(Syntax, p, p.Type) { WasCompilerGenerated = true };
 }
开发者ID:afrog33k,项目名称:csnative,代码行数:4,代码来源:SyntheticBoundNodeFactory.cs


示例17: CopyParameter

 private static ParameterSymbol CopyParameter(ParameterSymbol parameter, MethodSymbol owner)
 {
     return new SynthesizedParameterSymbol(
             owner,
         parameter.Type,
         parameter.Ordinal,
         parameter.RefKind,
             string.Empty); // Make sure nothing binds to this.
 }
开发者ID:afrog33k,项目名称:csnative,代码行数:9,代码来源:LambdaSymbol.cs


示例18: Create

 /// <summary>
 /// Creates a SemanticModel for a parameter default value.
 /// </summary>
 internal static InitializerSemanticModel Create(CSharpCompilation compilation, ParameterSyntax syntax, ParameterSymbol parameterSymbol, Binder rootBinder)
 {
     return new InitializerSemanticModel(compilation, syntax, parameterSymbol, rootBinder);
 }
开发者ID:ehsansajjad465,项目名称:roslyn,代码行数:7,代码来源:InitializerSemanticModel.cs


示例19: LambdaCopyParameterName

 internal static string LambdaCopyParameterName(ParameterSymbol sourceParameter)
 {
     return "<" + sourceParameter.Name + ">";
 }
开发者ID:rafaellincoln,项目名称:roslyn,代码行数:4,代码来源:GeneratedNames.cs


示例20: TryGetThisParameter

        internal sealed override bool TryGetThisParameter(out ParameterSymbol thisParameter)
        {
            // Required in EE scenarios.  Specifically, the EE binds in the context of a 
            // substituted method, whereas the core compiler always binds within the
            // context of an original definition.  
            // There should never be any reason to call this in normal compilation
            // scenarios, but the behavior should be sensible if it does occur.
            ParameterSymbol originalThisParameter;
            if (!originalDefinition.TryGetThisParameter(out originalThisParameter))
            {
                thisParameter = null;
                return false;
            }

            thisParameter = (object)originalThisParameter != null
                ? new ThisParameterSymbol(this)
                : null;
            return true;
        }
开发者ID:SoumikMukherjeeDOTNET,项目名称:roslyn,代码行数:19,代码来源:SubstitutedMethodSymbol.cs



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C# Symbols.PointerTypeSymbol类代码示例发布时间:2022-05-26
下一篇:
C# Symbols.NamespaceSymbol类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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