2014-11-11 2 views
0

Я просмотрел другие вопросы, но я не могу понять, что происходит в ответ, поэтому я выложу свой код здесь:Проблема с назначением/вызова методов из другого класса C#

public class Program 
{ 
    public static void Main() 
    { 
     Program startUp = new Program(); 
     Console.Clear(); 


     string file = @FILEPATH 
     string grades = File.ReadAllText(file);                     
     int acount = grades.Count(c => c == 'A'); 
     startUp.Grapher(); 

    } 


    public class Graph 
    { 
     public static string Grapher(int acount) 
     { 
     Console.WriteLine(String.Concat(Enumerable.Repeat("*", acount))); Console.Write(": A"); 

}} 

Любая помощь или объяснение было бы фантастическим!

+0

program.program не содержит определение для самописца и без метода расширения самописца принимающего первого аргумент типа program.progam может быть найден. Вам не хватает указаний по использованию или ссылки на сборку? –

+0

Также: program.Program.Graph.Grapher (int) не все пути кода возвращают значение. У меня есть другие функции в grapher от основного метода, но не поставили их здесь для удобства. –

+0

'Не все пути кода возвращают значение 'означает, что вам не хватает' return' в 'Grapher' – Mark

ответ

3

ОК, из того, что я вижу, вы создаете экземпляр класса Program, а затем попытаетесь использовать метод класса Graph.

Вы должны использовать экземпляр класса Graph.

public static void Main() 
{ 
    Console.Clear(); 

    string file = @FILEPATH 
    string grades = File.ReadAllText(file);                     
    int acount = grades.Count(c => c == 'A'); 
    Graph.Grapher(acount);// this is the change 

} 

и класс Graph будет:

public class Graph 
{ 
    public static void Grapher(int acount)// the change is here 
    { 
     Console.WriteLine(String.Concat(Enumerable.Repeat("*", acount))); Console.Write(": A"); 
    } 
}