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

时间:2013-12-17 19:14:15

标签: c#

我有一个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
}

4 个答案:

答案 0 :(得分:3)

您可以将xmlData的实例注入方法中。像这样:

public static string uploadFile(xmlData data, string file)

现在在该方法中你可以这样做:

data.testing ...

答案 1 :(得分:1)

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

public static string uploadFile(string file, string testing)

或者将对象传递给方法:

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

答案 2 :(得分:0)

当然有可能。你把它传递进来。

string myString = fileUpload.uploadFile(testing);

答案 3 :(得分:0)

我能想到的所有方法都在一个地方:

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);
    }
}

所有这些都有效,应该有希望回答这个问题。一个不同的问题可能是直接暴露实例变量或是否应该使用属性是一个好主意。 HM。