Ich weiß, dass mir etwas Offensichtliches fehlt, aber aus irgendeinem Grund kann ich keine Methode aus einer Klasse aufrufen. Ich habe eine Datei namens Searches mit einer SearchGroup-Methode. Ich versuche, diese Methode wie folgt aus einer anderen Datei aufzurufen, aber es heißt
'Suchen' enthält keine Definition für 'Suchgruppe':
List<Searches.NameScore> People = Searches.SearchGroup("Test");
Meine Searches
Klasse sieht aus wie:
public class Searches
{
private readonly IConfiguration _config;
public Searches(IConfiguration configuration)
{
_config = configuration;
}
public class FirstLoadGroup
{
public int IdGroup { get; set; }
public string Name { get; set; }
}
public class NameScore
{
public int Id { get; set; }
public string Name { get; set; }
public double Score { get; set; }
}
public async Task<List<NameScore>> SearchGroup(string Input)
{
//processy stuff
//Querying stuff
DataAccess data = new DataAccess();
string sql = "SELECT IdGroup, Name FROM Groups";
List<FirstLoadGroup> Names = await data.LoadData<FirstLoadGroup, dynamic>(sql, new { }, _config.GetConnectionString("DataDB"));
//Sorting and Comparing stuff
return SortedNames;
//return list of names in order of lowest to highest matching score
}
}
Nehmen Sie zuerst diese Klassen aus der Suche heraus (im Allgemeinen sollten Sie vermeiden, Klassen in anderen Klassen zu deklarieren):
public class Searches
{
private readonly IConfiguration _config;
public Searches(IConfiguration configuration)
{
_config = configuration;
}
public async Task<List<NameScore>> SearchGroup(string Input)
{
//processy stuff
//Querying stuff
DataAccess data = new DataAccess();
string sql = "SELECT IdGroup, Name FROM Groups";
List<FirstLoadGroup> Names = await data.LoadData<FirstLoadGroup, dynamic>(sql, new { }, _config.GetConnectionString("DataDB"));
//Sorting and Comparing stuff
return SortedNames;
//return list of names in order of lowest to highest matching score
}
}
public class FirstLoadGroup
{
public int IdGroup { get; set; }
public string Name { get; set; }
}
public class NameScore
{
public int Id { get; set; }
public string Name { get; set; }
public double Score { get; set; }
}
Dann müssen Sie Ihre Methode wie folgt aufrufen:
Searches s = new Searches(some config)
List<NameScore> people = await s.SearchGroup("Test");
Das heißt, wenn Sie eine Immobilie haben wie:
public Searches Searches { get; set; }
..then Searches.SearchGroup ist akzeptabel, aber die Tatsache, dass C # zu wissen scheint, was Searches ist, aber nicht, dass es eine SearchGroup-Methode hat, würde bedeuten, dass Sie zwei + Klassen namens Searches haben und diejenige, die für den Kontext Ihres Codes gefunden wird, nicht diejenige ist mit der SearchGroup-Methode. Überprüfen Sie Ihre Verwendungen und Aliase
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen