繁体   English   中英

将变量从公共类传递到公共静态类

[英]Passing a variable from a public class to a public static class

我有一个public类,需要在public static类中使用这些变量之一。 这可能吗? 如果是这样:我怎么称呼它?

public class xmlData
{
    public string testing;
}

public static class fileUpload
{
    public static string uploadFile(string file)
    // I want to use the testing here
}

您将xmlData的实例注入该方法。 像这样:

public static string uploadFile(xmlData data, string file)

现在在该方法中,您可以执行以下操作:

data.testing ...

无法从静态方法访问实例字段。 您可以将value作为参数传递:

public static string uploadFile(string file, string testing)

或将对象传递给方法:

public static string uploadFile(string file, xmlData data)
{ string testing = data.testing;  }

当然有可能。 你就把它传了

string myString = fileUpload.uploadFile(testing);

我能想到的所有方法:

public class xmlData
{
    public string testing;

    // part of "first option"
    public void RunStatic() {
        fileUpload.uploadFile(testing);
    }
}

public static class fileUpload
{
    // used by "option 1, 3"
    public static string uploadFile(string testing) {
        var firstOption = testing;
    }

    // used by "option 2"
    public static string uploadFile(xmlData myObject, string file) {
        var secondOption = myObject.testing;
    }
}

public class Program {
    public static void Main() {
        var objectExample = new xmlData();

        // first example
        objectExample.RunStatic();

        // second example
        fileUpload.uploadFile(objectExample, "");

        // third example
        fileUpload.uploadFile(objectExample.testing);
    }
}

所有这些都将起作用,并有望回答这个问题。 一个不同的问题可能是直接公开实例变量还是应该使用属性是一个好主意。 嗯。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM