Tag: class design

在设计时防止高度尺寸

我正在开发自定义用户控件。 如何在设计时界面中防止控件的高度被修改。

如何更改用户控件的访问修饰符

我有一个在xaml中创建的用户控件,让我们将其命名为“View”。 在View.xaml.cs中,我将类View的访问修饰符更改为internal: internal partial class View : ViewBase { … } 更改访问修饰符后,编译器会声明错误: “ABView”的部分声明具有冲突的可访问性修饰符 我的第一个猜测是必须通过xaml代码在内部创建视图。 所以我添加了两行xaml: x:Name=”View” x:FieldModifier=”internal” 但这并没有解决错误。 我在哪里必须更改访问修饰符以使内部视图?

实体应该实现接口吗?

我个人没有我的实体实现接口。 对于Task类,我不会让ITask在其上定义相同的属性。 我已经看过它做了几次,所以我想知道这个建议来自哪里,以及你从中获得了什么好处。 如果你正在使用ORM,那么说“我可以改变我的数据访问”的论点是无关紧要的,那么还有什么其他理由呢? 更新: 关于INotifyPropertyChanged的评论中提出了一个很好的观点。 这不是我的观点 – 我说的是这样的事情: public interface ITask { int Id { get; set; } string Description { get; set; } } public class Task : ITask { public int Id { get; set; } public string Description { get; set; } }

C#朋友类和OOP组合

给定包含原始数据集的类A和包含该数据的重新组织版本(GUI就绪)的类B,我想使A中的原始数据在B中可见。 显然,A类中的原始数据包含在私有成员中。 我想通过使用类似于C ++的朋友类方法的东西,使这些数据在B中可见。 我该如何处理? 谢谢。

“公共”嵌套类与否

假设我有一个“应用程序”类。 为了初始化,它需要在构造函数中进行某些设置。 我们还假设设置的数量太多,以至于将它们放在自己的类中是很有吸引力的。 比较此方案的以下两种实现方式。 实施1: class Application { Application(ApplicationSettings settings) { //Do initialisation here } } class ApplicationSettings { //Settings related methods and properties here } 实施2: class Application { Application(Application.Settings settings) { //Do initialisation here } class Settings { //Settings related methods and properties here } } 对我来说,第二种方法更为可取。 它更具可读性,因为它强调了两个类之间的关系。 当我编写代码以在任何地方实例化Application类时,第二种方法看起来更漂亮。 现在想象一下,Settings类本身又有一些类似的“相关”类,而这个类反过来也是如此。 只有三个这样的级别,类命名在’非嵌套’的情况下失控。 然而,如果你筑巢,事物仍然保持优雅。 尽管如此,我还是读过人们在StackOverflow上说嵌套类只有在外部世界不可见的情况下才是合理的。 […]

在C#中,使用值类型与引用类型

我的问题是: 什么时候我们应该使用值类型和引用类型? 一个优于其他的优点和缺点是什么? 如果在任何地方使用引用类型怎么办 它有什么危害吗? 还请讨论每个的优点和缺点。 我也想了解这一点。