Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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# 如何在两个文件中的两个分部类之间共享变量?_C# - Fatal编程技术网

C# 如何在两个文件中的两个分部类之间共享变量?

C# 如何在两个文件中的两个分部类之间共享变量?,c#,C#,我将此代码保存在一个文件中: namespace Japanese { public partial class PhrasesPage : ContentPage { PhrasesFrame phrasesFrame = new PhrasesFrame(); 此代码位于另一个文件中: namespace Japanese.Views.Phrases { public partial class PhrasesPage { p

我将此代码保存在一个文件中:

namespace Japanese
{
    public partial class PhrasesPage : ContentPage
    {
        PhrasesFrame phrasesFrame = new PhrasesFrame();
此代码位于另一个文件中:

namespace Japanese.Views.Phrases
{
    public partial class PhrasesPage
    {
        public void setTimeInterval()
        {

        phrasesFrame // can't access

我希望能够访问第二个文件中的短语框架,但似乎不可能。谁能给我一些建议,我可以做什么,这样我就可以在另一个文件中访问它,这也是一个部分类。还有一个问题。我应该用我的分部类从ContentPage继承所有文件,还是仅仅一个文件就足够了?

您可以轻松访问其中分部类的所有成员,即使是私有的

public partial class Test
{
    private int x = 5;
}

public partial class Test
{
    public void Run()
    {
        Console.WriteLine(x); // outputs 5
    }
}
但是,您没有正确地使用它。由于类位于两个不同的名称空间中,编译器将它们视为两个不同的类:

Japanese.PhrasesPage
Japanese.Views.Phrases.PhrasesPage
如果要使其像分部类一样工作,则需要将它们放在单个命名空间中:

// 1
namespace Japanese.Views.Phrases
{
    public partial class PhrasesPage : ContentPage
    {
        PhrasesFrame phrasesFrame = new PhrasesFrame();

// 2
namespace Japanese.Views.Phrases
{
    public partial class PhrasesPage
    {
        public void setTimeInterval()
        {
            phrasesFrame // CAN access
但是,请对这些类的责任进行一些分析。
既然您将它们放在不同的名称空间中,并从不同的类继承,那么它们可能有不同的含义,并且需要设计为独立的类

您总是可以通过组合或聚合使类相互关联,而不是使其成为局部的。分部类不是很方便,通常用于代码生成场景


对我来说,
setTimeInterval
听起来似乎与“短语”和“页面”无关。

您可以轻松访问其中所有分部类的成员,即使是私有的

public partial class Test
{
    private int x = 5;
}

public partial class Test
{
    public void Run()
    {
        Console.WriteLine(x); // outputs 5
    }
}
但是,您没有正确地使用它。由于类位于两个不同的名称空间中,编译器将它们视为两个不同的类:

Japanese.PhrasesPage
Japanese.Views.Phrases.PhrasesPage
如果要使其像分部类一样工作,则需要将它们放在单个命名空间中:

// 1
namespace Japanese.Views.Phrases
{
    public partial class PhrasesPage : ContentPage
    {
        PhrasesFrame phrasesFrame = new PhrasesFrame();

// 2
namespace Japanese.Views.Phrases
{
    public partial class PhrasesPage
    {
        public void setTimeInterval()
        {
            phrasesFrame // CAN access
但是,请对这些类的责任进行一些分析。
既然您将它们放在不同的名称空间中,并从不同的类继承,那么它们可能有不同的含义,并且需要设计为独立的类

您总是可以通过组合或聚合使类相互关联,而不是使其成为局部的。分部类不是很方便,通常用于代码生成场景


对我来说,
setTimeInterval
听起来似乎与“短语”和“页面”无关。

由于名称空间不同,它们被视为两个不同的类。您应该为它们使用一个公共名称空间,如下所示:

namespace Japanese
{
  public partial class PhrasesPage : ContentPage
  {
    PhrasesFrame phrasesFrame = new PhrasesFrame();
    //...
  }
}

namespace Japanese
{
  public partial class PhrasesPage
  {
    public void setTimeInterval()
    {
      phrasesFrame // accessible! :)
    }
  }
}

由于名称空间不同,它们被视为两个不同的类。您应该为它们使用一个公共名称空间,如下所示:

namespace Japanese
{
  public partial class PhrasesPage : ContentPage
  {
    PhrasesFrame phrasesFrame = new PhrasesFrame();
    //...
  }
}

namespace Japanese
{
  public partial class PhrasesPage
  {
    public void setTimeInterval()
    {
      phrasesFrame // accessible! :)
    }
  }
}

你在问为什么两个不相关的类(
Japanese.PhrasesPage
Japanese.Views.Phrases.PhrasesPage
)不能访问彼此的私有字段?这两个
PhrasesPage
都存在于不同的名称空间中,因此它们不能在一个类中编译。你在问为什么两个不相关的类(
日语.PhrasesPage
日语.Views.Phrases.PhrasesPage
)无法访问彼此的私有字段?两个
PhrasesPage
都存在于不同的名称空间中,因此无法在单个类中编译。非常感谢您的回答。我现在就接受。非常感谢您的回答。我现在就接受。