Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# App.xaml中的本地_C#_Xaml_Windows Store Apps - Fatal编程技术网

C# App.xaml中的本地

C# App.xaml中的本地,c#,xaml,windows-store-apps,C#,Xaml,Windows Store Apps,我正在查看Windows应用商店应用程序示例,并试图了解一些东西是如何工作的 我在App.xaml中有此代码 <local:Apoel x:Key="apoel"/> 我试着在网上搜索,但我不知道该用什么术语来完美地解释这是如何工作的 这两行代码到底在做什么 如果类Apoel的构造函数需要参数,它将如何工作 对象何时实例化?它只是一个赋值。在xaml中,正在定义名为Apoel的Apoel对象,并且 Apoel apoellin= (Apoel)App.Current.Resourc

我正在查看Windows应用商店应用程序示例,并试图了解一些东西是如何工作的

我在App.xaml中有此代码

<local:Apoel x:Key="apoel"/>
我试着在网上搜索,但我不知道该用什么术语来完美地解释这是如何工作的

这两行代码到底在做什么

如果类Apoel的构造函数需要参数,它将如何工作


对象何时实例化?

它只是一个赋值。在xaml中,正在定义名为
Apoel
Apoel
对象,并且

Apoel apoellin= (Apoel)App.Current.Resources["apoel"];
这只是一个参考任务。没有创建新对象

关于参数化构造函数,请在此处检查答案

因此,在我的App.Xaml代码中,对象被创建并作为“全局”资源,供其他页面使用另一行代码?基本上是的
App.Xaml是应用程序的定义。它应该包含一个
部分,这是一个全局可访问对象的字典。它在某种程度上类似于使用
resx
文件。我不知道resx文件:D,但让我告诉你我的理解。这就像创建一个全局变量,可以使用Apoel-apoellin=(Apoel)App.Current.Resources[“Apoel”]从代码的每个可能位置访问它;它只是告诉我的代码从全局“池”中获取该变量,并将其转换为Apoel类型。为什么需要铸造呢?这是正确的。您需要强制转换它,因为
Resources[Key]
返回总体
object
type,它是所有其他类的基类。字典之所以这样做,是因为它在设计时不知道它所持有的对象是什么类型的——它们都是在运行时解析的。
Apoel apoellin= (Apoel)App.Current.Resources["apoel"];