setter 相关问题

Setter是公共mutator方法,用于面向对象的编程,它为类的私有成员赋予新的价值。

更改 C# 中结构体的属性值[重复]

我在读一本书,发现结构实际上是不可变的对象。但他们有 getter 和 setter。我想知道结构体的属性在创建后是否可以更改。

回答 4 投票 0

自从迁移到 Visual Studio 2022 .net 7 以来,C# 小数设置器不再工作。该值始终设置为 0

我有一个调试器的屏幕截图,我可以在其中将本地十进制设置为该值,并且我在调试器中看到它已设置,但设置器的私有十进制变量未设置为该值....

回答 1 投票 0

是否可以将setter作为方法来调用?

给定以下课程,我可以使用 setter/getter 构造修改 _x。但是现在可以通过调用方法来更改 _x 吗? 我之所以问这个问题,只是因为这样以后会很方便......

回答 1 投票 0

毛伊岛自定义条目行为正在阻止 ViewModel 上的 Set 调用

我为 Entry 控件创建了一个自定义行为,允许 Entry 控件集合提供一个单位数字代码输入字段,将光标移动到下一个字段(右侧)...

回答 1 投票 0

如何为带有索引或切片的列表定义setter?

使用 property 和 setter 装饰器,我可以定义 getter 和 setter 函数。这对于基元来说很好,但是如何索引集合或 numpy 数组呢? 设置值似乎可以与 i...

回答 2 投票 0

在 WinUI 3 中的样式设置器中进行绑定

WinUI 3 是否支持样式设置器中的绑定?我已经为 NavigationView 定义了样式,第三行是: WinUI 3 支持样式设置器中的绑定吗?我已经为 NavigationView 定义了样式,第三行是: <Setter Property="CompactPaneLength" Value="{Binding CurrentCompactPaneLength}" /> 这会在运行时产生 Specified cast is not valid. 异常。包含 NavigationView 的页面的 DataContext 是该页面的 ViewModel。 NavigationView.CompactPaneLength 和 CurrentCompactPaneLength 都是 double 和 public,并且 CurrentCompactPaneLength 是一个 ObservableObject(来自 CommunityToolkit.Mvvm.ComponentModel)。 WinUI 3 (SDK 1.1.2) 的源代码包含各种 Setter,例如 <Setter Target="PaneContentGrid.Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=CompactPaneLength}" /> 如果有必要的话,在代码中进行绑定是可行的。但 XAML 不应该也起作用吗? 显然,WinUI 3 尚不支持 Setter 中的常规绑定,尽管这是一项备受期待的功能。解决方法是创建一个包含 DependencyProperty 的帮助程序类,每当更改/设置属性时,该类都会调用更改处理程序。然后,更改处理程序可以在代码中创建所需的绑定。感谢 clemens,他很久以前就为 UWP 提出了类似的建议。这是一个辅助类示例: internal class BindingHelper { #region CompactPaneLengthBindingPath public static readonly DependencyProperty CompactPaneLengthBindingPathProperty = DependencyProperty.RegisterAttached( "CompactPaneLengthBindingPath", typeof(string), typeof(BindingHelper), new PropertyMetadata(null, BindingPathChanged)); public static string GetCompactPaneLengthBindingPath(DependencyObject obj) { return (string)obj.GetValue(CompactPaneLengthBindingPathProperty); } public static void SetCompactPaneLengthBindingPath(DependencyObject obj, string value) { obj.SetValue(CompactPaneLengthBindingPathProperty, value); } #endregion #region HeightBindingPath // another DP is defined here (all of them are strings) #region ForegroundBindingPath // and a third one, etc. // ===================== Change Handler: Creates the actual binding private static void BindingPathChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { if (e.NewValue is string source) // source property (could add DataContext by setting Value="source@datacontext" for example) { DependencyProperty target; // which property is the target of the binding? if (e.Property == CompactPaneLengthBindingPathProperty) target = NavigationView.CompactPaneLengthProperty; else if (e.Property == HeightBindingPathProperty) target = FrameworkElement.HeightProperty; else if (e.Property == ForegroundBindingPathProperty) target = Control.ForegroundProperty; else throw new System.Exception($"BindingHelper: Unknown target ({nameof(e.Property)}"); // don't know this property obj.ClearValue(target); // clear previous bindings (and value) BindingOperations.SetBinding(obj, target, // set new binding (and value) new Binding { Path = new PropertyPath(source), Mode = BindingMode.OneWay }); } } 请注意,所有 DependencyProperties 都是字符串类型,并且目标类型可以是您正在使用的控件的任何祖先类型。例如,HeightBindingPathProperty 绑定可以与任何 FrameworkElement 一起使用。 在 Style 中使用 helper 就像使用任何 Setter 一样,如下所示: <Style x:Key="MyNavigationView" TargetType="controls:NavigationView" > <Setter Property="local:BindingHelper.CompactPaneLengthBindingPath" Value="CurrentCompactPaneLength" /> </Style> 我希望这有帮助。 这对我有用: <Page.Resources> <Style TargetType="TextBlock"> <Setter Property="FontSize" Value="{x:Bind ViewModel.FontSize, Mode=OneWay}" /> </Style> </Page.Resources>

回答 2 投票 0

同时使用 __setattr__ 和 python 类描述符

我正在编写一个 python 类,它使用 __setattr__ 和 __getattr__ 来提供自定义属性访问。 然而,有些属性无法以通用方式处理,所以我希望使用描述符......

回答 2 投票 0

使用属性时出现这个 setter 错误(“X”未定义...)是什么?

@属性 def GetURLLabel(自身): 返回 self._URLLabel # 设置方法 @URLLabel.setter def SetURLLabel(自身, 值): if isinstance(值, str): self._URLLabel = 值 别的: ...

回答 2 投票 0

Python 对象:这个设置器错误是什么(“X”未定义...)?

# Setter 方法 @URLLabel.setter def SetURLLabel(自身, 值): if isinstance(值, str): self._URLLabel = 值 别的: 引发 ValueError("必须...

回答 2 投票 0

DWScript:对象的属性 getter/setter

tdwsUnit 声明 TObject 类型的属性,以及 getter 和 setter。实例化的对象应存储在 Delphi 端的“对象存储”中。目标是运输...

回答 1 投票 0

为什么我的 setter 没有在我的 Java 程序中工作?

我的质量设置器确实成功地防止了变量在主方法中直接设置为负数,但它也允许构造函数用负值实例化对象,w...

回答 1 投票 0

Object.defineProperty Setter 函数有多个参数?

Object.defineProperty setter 函数是否可以有多个参数? 例如。 var Obj = 函数() { var obj = {}; var _joe = 17; Object.defineProperty(obj, "乔", { 得到:

回答 3 投票 0

kotlin 可通过构造函数属性和自定义设置器进行序列化

我想让我的一个类可序列化(kotlinx.serialization),但意识到由于 Kotlin 中的这些限制,这是不可能的: 可序列化需要主参数中的每个参数

回答 1 投票 0

C# 的自定义属性设置器的 Python 替代方案是什么?

我将从 C# 世界转向 Python。在 C# 中,我可以使用 get 和 set 在为属性设置值时更新其他对象属性,如下所示: 私有 int _age; 私有字符串

回答 2 投票 0

为类属性创建 python 自定义 setter 的最简单方法,与 C# 相比

从 C# 世界进入 Python。在 C# 中,我可以使用 get 和 set 在为属性设置值时更新其他对象属性,如下所示: 私有 int _age; 私有字符串

回答 1 投票 0

访问器魔术方法在 PHP 8 中不起作用

我最近将 Ubuntu 从 20.04 LTS 升级到 22.04 LTS。我注意到 PHP 已升级到以下版本: PHP 8.1.2-1ubuntu2.13 (cli)(构建时间:2023 年 6 月 28 日 14:01:49)(NTS) 版权所有 (c) PHP

回答 1 投票 0

setter中null和empty check的高效方式是什么

我需要为我的 DTO 类中的 27 个字段中的每一个添加 null 和空检查,我正在寻找最有效的方法来完成它。谁能提出任何想法? 私人字符串设置T ...

回答 4 投票 0

风格目标行为 MAUI

我想为当前页面创建样式编辑器。我用了几次所以我决定为这个元素编写样式并想知道如何在样式中使用行为。如果我像常规方式那样做,

回答 1 投票 0

为什么我的私有变量在使用 getter-setter 方法后没有更新?

我正在制作一个程序,它要求用户输入名称。我以前做过两次几乎相同的事情。但是,由于某种原因,程序在我调用时给了我“null”...

回答 0 投票 0

访问 Matrix 的元素

帮助我在没有numpy的情况下使用属性实现矩阵元素的访问和更改。我是初学者) 我试图做什么 类矩阵: def __init__(self, matrix=[[0] * 3 for i in range(3...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.