Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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#_Class_Parameters_Field_Base - Fatal编程技术网

C#新类清除基类值

C#新类清除基类值,c#,class,parameters,field,base,C#,Class,Parameters,Field,Base,我已经搜索了很多遍(虽然可能没有找到)。我已经做了太多的网络开发,我似乎不能得到这个。我有一个基本情况: public class myfields { public String myfield1 { get; set; } } 然后使用该类的另一个类: class mydohere : myfields { public Boolean getValue {string xyz) { string abc = myfield1; } } 我

我已经搜索了很多遍(虽然可能没有找到)。我已经做了太多的网络开发,我似乎不能得到这个。我有一个基本情况:

public class myfields
{
    public String myfield1 { get; set; }
}
然后使用该类的另一个类:

class mydohere : myfields
{
    public Boolean getValue {string xyz)
    {
        string abc = myfield1;
    }
}
我无法得到的是,如果我创建:

mydohere Objmydohere  = new mydohere();
myfield1的值现在为空!基本myfields中的所有值都设置为null(或空,因为它是一个新对象)。在一个类中创建字段(或参数)并与其他类共享而不重置其值的最佳方法是什么?我试过使用关键字“base”。我尝试过使用道具和字段*,因为您无法实例化它们)


我的目标是拥有一个可设置字段的类,我可以使用accross类,而不必为每个使用它的类创建新类。这有意义吗?我相信有更好的方法可以做到这一点:)

听起来你想要的是一个
常量
静态变量

如果常数始终相同,请使用常数:

const string myfield1 = "my const";
如果您想设置一次,请使用static,可能在执行一些逻辑之后:

static string myfield1 = "my static";

听起来您要查找的是
常量
静态
变量

如果常数始终相同,请使用常数:

const string myfield1 = "my const";
如果您想设置一次,请使用static,可能在执行一些逻辑之后:

static string myfield1 = "my static";

这实际上取决于您希望如何处理此“共享数据”,一种方法是使用静态类和依赖项注入:

public interface Imyfields
{
    String myfield1 { get; set; }
}

public class myfields : Imyfields
{
    private static readonly Imyfields instance = new myfields();

    private myfields()
    {
    }

    public static Imyfields Instance
    {
        get
        {
            return instance;
        }
    }

    public String myfield1 { get; set; }
}

class mydohere
{
    private readonly Imyfields myfields;

    public mydohere(Imyfields myfields)
    {
        this.myfields = myfields;
    }

    public Boolean getValue(string xyz)
    {
        string abc = this.myfields.myfield1;
    }
}

这实际上取决于您希望如何处理此“共享数据”,一种方法是使用静态类和依赖项注入:

public interface Imyfields
{
    String myfield1 { get; set; }
}

public class myfields : Imyfields
{
    private static readonly Imyfields instance = new myfields();

    private myfields()
    {
    }

    public static Imyfields Instance
    {
        get
        {
            return instance;
        }
    }

    public String myfield1 { get; set; }
}

class mydohere
{
    private readonly Imyfields myfields;

    public mydohere(Imyfields myfields)
    {
        this.myfields = myfields;
    }

    public Boolean getValue(string xyz)
    {
        string abc = this.myfields.myfield1;
    }
}

没有任何内容重置为null,它在第一次初始化时从未使用值。在基本对象中,只有一个getter/setter,没有任何初始化值本身的代码


也许我不太理解这个问题,而其他关于静态的建议才是你真正需要的!:)

没有任何内容重置为null,它在第一次初始化时从未使用值。在基本对象中,只有一个getter/setter,没有任何初始化值本身的代码


也许我不太理解这个问题,而其他关于静态的建议才是你真正需要的!:)

这是我的理解,你是对的。我在一个类(像一个主类)中设置了myfields中的一些值。但在main类中,我创建了一个新的类对象,并且在该类中,我想从myfields中设置一个未设置的值。(但正如前面所说,myfields似乎被带上了新的旅程)。我假设我的主类设置了其中一些字段,它仍然有那个对象,它确实有。我看到很多好的想法和建议,我很快就会尝试它们,thanx!这是我的理解,你是对的。我在一个类(像一个主类)中设置了myfields中的一些值。但在main类中,我创建了一个新的类对象,并且在该类中,我想从myfields中设置一个未设置的值。(但正如前面所说,myfields似乎被带上了新的旅程)。我假设我的主类设置了其中一些字段,它仍然有那个对象,它确实有。我看到很多好的想法和建议,我很快就会尝试它们,thanx!保护级别不允许仅使用“静态”。但这奏效了!公共静态字符串myfield1{get;set;},为什么?它使用了调用类(设置它的地方)的值,然后允许设置更多字段,而不影响调用类的设置值。塔克斯!保护级别不允许仅使用“静态”。但这奏效了!公共静态字符串myfield1{get;set;},为什么?它使用了调用类(设置它的地方)的值,然后允许设置更多字段,而不影响调用类的设置值。塔克斯!