在Blazor页面(不是Blazor组件)中,为什么所有方法和变量在@code中都是私有的



在这里您可以看到一些私有的方法和变量。

我使用的示例与上面的代码不同:这是剃须刀页索引。

@page "/"
<Counter Title="Diego's Component" Label="Valor" CurrentValue="@counter" ValueChanged="@CounterChanged"></Counter>
<h1>Dos:</h1>
<Alert Show="@(counter>3)">
<p>Your counter is bigger than 3</p>
</Alert>
<DismissableAlert Show="@(counter>3)">
<p>Count too large!</p>
</DismissableAlert>

<Timer Active="@(counter>3)" Tick="@ResetCounter" TimeInSeconds="3"></Timer>
<DiegoFotos @ref="dies"></DiegoFotos>
<Timer Tick="@NextDie" TimeInSeconds="3" Active="@true"></Timer>
@code
{
private int counter = 0;
private void CounterChanged(int newCounter)
{
counter = newCounter;
this.StateHasChanged();
}
private void ResetCounter() => this.counter = 0;
//reference to the other component
private DiegoFotos dies;
public void NextDie() => dies.NextDie();
}

在上面的代码中,您可以看到一个公共方法";NextDie";提前感谢您的澄清

当您将方法或变量定义为私有时,它们的作用域是当前组件,不能从外部访问。

在Blazor中,为什么所有方法和变量在@code中都是私有的?

这不是真的。如果您希望将方法、字段和属性公开给外部世界,则可以将它们定义为公共的。

例如,如果您希望允许父组件将值传递给其子组件,则应定义参数公共属性,如下所示;

[参数]公共字符串值{get;set;}

现在,如果您将public修饰符更改为private,则此代码将不起作用。。。

注意:组件是一个C#类,在这方面它具有与C#类相同的特性,尽管它是一个类的特殊情况(由于渲染特性(

相关内容

  • 没有找到相关文章

最新更新