You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中是否存在与@typeparam对等的语法?官方文档未查询到相关说明

C# 对等Blazor @typeparam 语法的说明

@typeparam 是Blazor Razor组件特有的Razor语法,用于声明组件的泛型参数,不存在完全对等的C#原生关键字,但不同场景下有对应的实现方式,你写的代码报错是写法错误导致的。

1. 你的代码错误修复

你不需要在@code块中额外声明泛型参数T,@typeparam T已经完成了泛型参数的注册,删掉错误的那行即可正常运行,正确写法如下:

@typeparam T
<!-- 如果需要加泛型约束,可以写为 @typeparam T where T : 你的约束类型 -->

<div>@typeof(T).Name</div>

@code {
    // 这里直接使用T即可,不需要额外声明
}

你写的[TypeParameter] type T {get;set;}有两个错误:

  • C# 没有type关键字用来声明泛型参数,这个语法完全不合法
  • [TypeParameter]特性仅用于标记级联泛型参数,不是用来声明普通泛型参数的

2. 纯C#类场景的对等实现

如果你是要在非Razor的纯C# Blazor组件类中声明泛型参数,直接写泛型类即可,和普通C#泛型类的写法完全一致:

using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Rendering;

public class MyGenericComponent<T> : ComponentBase
{
    protected override void BuildRenderTree(RenderTreeBuilder builder)
    {
        builder.OpenElement(0, "div");
        builder.AddContent(1, typeof(T).Name);
        builder.CloseElement();
    }
}

内容的提问来源于stack exchange,提问作者Kevon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:39:00