.net - Sådan henvises til strenge i en ekstern klasse (C #)

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan ville det være muligt at henvise til en ekstern streng i en ekstern klasse.


f.eks.


Class1.cs:


MessageBox.Show(mystring);


Class2.cs:


public static void myMethod()
{
string mystring = "foobar";

// some logic here
}

Bedste reference


Hvis jeg forstod dit spørgsmål korrekt, kan du gøre noget som dette:


public class2 
{
    public static string MyString 
    {
       get {return "foobar"; }
    }

}


public class1 
{
    public void DoSomething() 
    {
       MessageBox.Show(class2.MyString );
    }
}

Andre referencer 1


Noget sådan her?


public static class Foo
{
    public const string FOO\_CONST = "value";
}

public class Bar
{
    public void Bar()
    {
        Console.WriteLine(Foo.FOO\_CONST);
    }
}

Andre referencer 2


Hvis du opretter en ny forekomst af klasse2, kan du gøre MyString offentlig eller trække den ud i en get-metode:


//In Class1
Class2 class2 = new Class2();
MessageBox.Show(class2.Mystring());

//In Class2
public string Mystring{ get; set; }


Eller du kan returnere strengen fra metoden


public static string myMethod()
{
    string myString = "foobar";
    //logic goes here
    return myString;
}

//In Class1
Class2 class2 = new Class2();
MessageBox.Show(class2.MyMethod());

Andre referencer 3


Baseret på din præcisering af dit spørgsmål:



  Jeg forsøger at kontrollere en boolsk værdi i en metode i klasse2. F.eks. hvis
  den metode, der køres i klasse2, ændrer den boolske værdi i den metode, den
  Metode i klasse1 kan tjekke dette og gøre noget logik



Du kunne gøre noget som dette:


class Class1 {

  Class2 myClass = new Class2();

  public void ActivityMethod() {
    myClass.MethodThatMayChangeBoolean();
    if(myClass.myBoolean) {
      // Response to a truth change.
    } else {
      // Respond to a false change.
    }
  }
}

class Class2 {
  public boolean myBoolean { get; }

  public void MethodThatMayChangeBoolean() {
    // Do stuff in here that may change boolean.
  }
}

Andre referencer 4


Du skal bruge Egenskaber


 private static string \_mystring = "foobar";
 public static string mystring 
 {
    get { return \_mystring ; }
    set { \_mystring = value; }
 }


Eller brug autoegenskaber og initialiser deres værdier i klassens statiske konstruktør:


 public static string mystring { get; set; }

 public static MyStaticClass()
 {
   mystring = "foobar";
 }