C#WPF应用程序:什么是“;这个“;

本文关键字:这个 什么 应用程序 C#WPF | 更新日期: 2023-09-27 18:25:25

我在C#中玩了很多WPF应用程序,有很多事情我都不太清楚,我一直在尝试查找它,并用它来解决它,但没有取得多大成功,因为英语是我的第二语言,我在术语和编程方面仍然不太好。。。

1:主类中的"this"是什么当我在XAML中创建新的WPF应用程序时,我会得到一个窗口和一个网格。然而,我非常不喜欢XAML,喜欢为我需要的所有元素和对象编写代码,所以我删除了第一个网格,创建了一个类,定义了我的网格,然后添加它,我必须编写类似的东西

   this.AddChild(myGrid);

这很好,但如果我想在其他类中使用主类中的"this",这对我来说就有点复杂了。那么,哪个UIElement或Object是"this"呢?我该如何定义它,以便在方法中使用它?"this",我想是指一开始创建的Window,但那个Window是什么UIElement或Object?

2:扩展类我最近看了很多java教程,只是想了解更多编程知识。在那里,要使用其他类中的对象,只需编写:

   public class class1 extends class2{}

一切都很完美,我发现我可以在C#WPF中模仿同样的东西,除非它是主类,因为主类扩展:Window,我想因为它被定义为分部类。。。有没有一种方法可以"扩展"多个类或绕过它?

任何关于清除此问题的帮助都将非常好:)

C#WPF应用程序:什么是“;这个“;

您应该学习C#中的面向对象编程

  1. this表示类的当前实例。因此,在每个类中,this都指向不同的对象。通常可以省略CCD_ 3,而仅可以使用CCD_
  2. extends(或C#中的:)意味着第一类(class1)从第二类(class2)继承,从而可以访问在class2中定义的未标记为private的方法和变量

对于关于"this"及其标识的部分,Window位于类的层次结构中,可以假设其任何祖先的标识。例如

    public MainWindow()
    {
        InitializeComponent();
        var contentControl = this as ContentControl;
        var control = this as Control;
        var frameworkElement = this as FrameworkElement;
        var uiElement = this as UIElement;
        var dependencyObject = this as DependencyObject;
        var dispatcher = this as DispatcherObject;
    }

这个片段中的所有赋值都是合法的。此外,还有更奇特的任务,如

var x = this as IInputElement;

这里的关键是检查框架和每个班级的各种作业。正如其他人所指出的,离线阅读对于快速学习至关重要。

在面向对象的上下文中,"this"作为关键字的词源可以追溯到20世纪70年代末,当时它首次出现在C++的早期规范中。

最后,Xaml是WPF最吸引人的功能之一,原因有很多,如果Xaml与您的方法不兼容,您可能会在WinForms或Swing或类似的紧密绑定框架中过得更好。

简单地说this就是您所在的类。

例如

class dim
{
    int sum = 0;
    public void num(int sum){
        this.sum = sum; //Places the sum from num to the sum in dim
    }
}

在面向对象编程中,扩展类基本上被称为继承。有几种类型的继承,如单继承、多继承、多级继承、层次继承、混合继承。但是C#和Java不支持来自多个类的确定,因为多重继承会产生很多歧义。

一个替代多重继承的特性是使用接口。我们不使用"从类扩展",而是使用关键字"implements"来"实现接口"。接口只是一个骨架类,您可以在其中声明方法签名,并且接口将在您"实现该接口"的类中实现。重要的一点是,您可以实现多个接口

要获得有关继承和接口的概述,以下链接将很有帮助:

http://msdn.microsoft.com/en-us/library/ms228387(v=vs.80).aspx