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

C# 将变量从公共类传递到公共静态类,c#,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 } 将xmlData的一个实例注入该方法。

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

xmlData
的一个实例注入该方法。像这样:

public static string uploadFile(xmlData data, string file)
现在,在该方法中,您可以执行以下操作:

data.testing ...

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

public static string uploadFile(string file, string testing)
或将对象传递到方法:

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

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

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

当然有可能。你只要把它递过来就行了

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

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

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

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);
    }
}
所有这些都将起作用,并有望回答这个问题。另一个问题可能是直接公开实例变量是否是一个好主意,还是应该使用属性。嗯