【问题标题】:Blazor ComponentBase or Partial ClassBlazor ComponentBase 或部分类
【发布时间】:2021-02-22 07:47:20
【问题描述】:

在 Blazor 中使用 ComponentBase 而不是 Partial Class 或反之亦然有什么大的区别或优势吗?我已经检查了微软的文档,到目前为止我还没有得到明确的答案。在互联网上搜索也没有给我太多。如果已经有类似的问题,请指出我也很好。

【问题讨论】:

  • partial class 是 C# 概念,而不是 Blazor 功能。您可以将一个类的源代码分散到多个源文件中,例如,如果您希望其中一个自动生成。在编译之前,所有文件合并为一个。您的组件的代码隐藏文件是部分类,而不是单独的或派生类。

标签: c# asp.net-core blazor


【解决方案1】:

使用 ComponentBase 优于 Partial Class 的区别或优势

这不是两个不同或相反的东西。您可以同时进行这两项操作。

当您将“代码隐藏类”添加到例如计数器页面时:

// Counter.razor.cs
partial class Counter
{
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

您正在为部分类使用默认规则。上面的定义完全等价于

// Counter.razor.cs
public partial class Counter : ComponentBase 
{
    ... 
}

【讨论】:

    【解决方案2】:
    • ComponentBase 上,您的 Blazor 组件将从另一个 Blazor 组件继承。只有受保护和公共基础成员可见。
    • Partial Class 上,您的组件将使用其他对象成员进行扩展,例如私有属性、字段、方法……。您在部分类上编写的所有内容都在组件上可见。

    您可以方便地使用 ComponentBase 或 Partial Classes 进行编码。

    在我看来,部分类的优势在于你有没有继承的代码背后经验,都在一个类中。

    ComponentBase 的主要优点是可重用性和封装性(如果需要)。

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 2021-11-10
      • 2022-01-15
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 2020-06-18
      相关资源
      最近更新 更多