Новичок в C# и пытается следовать определенной структуре кода при создании API погоды.
public class weatherData
{
public class coordinates
{
protected string longitude; //coord.lon for opw
protected string latitude; //coord.lat for opw
}
public class weather
{
protected string summary; //weather.main for opw
protected string description;
protected double visibility; // only for DS
} }
public class weatherAPI : weatherData
{
}
Я пытаюсь написать функцию возврата для координат (возвращает широту и долготу), погоды (возвращает сводку, описание, видимость) в weatherAPI.
Пожалуйста помоги. Спасибо !
Я хочу написать функцию внутри weatherAPI, которая может возвращать унаследованные классы (для координат egs). Я создам где-нибудь объект weatherAPI и, вызывая указанную функцию для координат, верну значения координат (то есть долготу и широту).
Вы называете вложенный класс parent.nestedclass
. Так что в общем что-то вроде public weatherData.coordinates GetGoordinate()
. Однако в этом случае, поскольку вложенный класс находится внутри класса, в котором вы объявляете методы, вы можете просто использовать public coordinates GetGoordinate()
. Как уже было сказано, вложенные классы очень редко являются тем, что вам нужно для хорошего дизайна. Я бы просто поместил их в отдельные классы.
Вы не ищете вложенные классы или наследование. У обоих есть свое место, но его здесь нет. Видеть:
Вы ищете композицию, используя свойства. И пока вы это делаете, придерживайтесь соглашений об именах C# и по возможности используйте свойства:
public class Coordinates
{
public string Longitude { get; set; } //coord.lon for opw
public string Latitude { get; set; } //coord.lat for opw
}
public class Weather
{
public string Summary { get; set; } //weather.main for opw
public string Description { get; set; }
public double Visibility { get; set; } // only for DS
}
// A composed class
public class WeatherData
{
public Coordinates Coordinates { get; set; }
public Weather Weather { get; set; }
}
Теперь вы можете написать свой метод:
public class WeatherAPI
{
public WeatherData GetWeatherData()
{
var data = new WeatherData();
data.Coordinates = new Coordinates
{
Longitude = ...,
};
data.Weather = new Weather
{
Summary = ...,
};
return data;
}
}
Привет. Не совсем уверены, в чем ваша проблема? Не могли бы вы объяснить, пожалуйста. Я могу видеть дизайн ваших классов, но что вы не можете сделать или с чем у вас проблемы?