如何将TModel限制为仅类或实现特定接口?
@typeparam TModel
无法使用语法。
答案 0 :(得分:1)
解决方案是另外将类型约束放在类后面的部分代码中。可行!
答案 1 :(得分:0)
确实,Sven 发布的答案有效,但我需要做一项修改 - 将 <RazorLangVersion>3.0</RazorLangVersion>
添加到我的 .csproj 文件中。之后,项目被编译。
所以这是我的完整文件:
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion> <!-- Important -->
<Nullable>enable</Nullable>
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
</PropertyGroup>
</Project>
@typeparam TViewModel
@inherits PageBase<TViewModel>
<h3>Some text</h3>
public abstract partial class AuthenticatedPageBase<TViewModel>
where TViewModel : ViewModelBase
{
}
编辑:
好吧,从 csproj 文件中删除 <RazorLangVersion>
标记后,它似乎仍然有效。