none
probelma con icoherencia de accesibilidad: el tipo de valor devuelto es menos accesible RRS feed

  • Pregunta

  • hola, tengo este problema con un pequeño ejercicio de clases, estamos usando xamarin para hacer una app que se conecte a una pagina de clima, y la profesora nos paso el código, pero a mi me sale este error que ni a ella ni al resto de mis compañeros les sale. el error sale en la clase ServicioClima.cs

    * CS0050    Incoherencia de accesibilidad: el tipo de valor devuelto 'Task<Clima>' es menos accesible que el método 'ServicioClima.Buscar(string)'    ClimaAPP    C:\Users\OSKR ARTURO\source\repos\ClimaAPP\ClimaAPP\ClimaAPP\Servicios\SevicioClima.cs    13    Activo*

    el codigo es el siguiente.

    ServicioClima.cs

    using ClimaAPP.Clases;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    using System;
    using System.Net.Http;
    using System.Threading.Tasks;
    namespace ClimaAPP.Servicios
    {
        public static class ServicioClima
        {
    
            static string Key = "2bddc3f4dc0650aa77eebfd9fa5ccc92";
            public static async Task<Clima> Buscar(string ciudad)
            {
                var conexion =
                $"http://api.openweathermap.org/data/2.5/weather?q={ciudad}&appid={Key}";
                using (var cliente = new HttpClient())
                {
                    var peticion = await cliente.GetAsync(conexion);
                    if (peticion != null)
                    {
                        var json = peticion.Content.ReadAsStringAsync().Result;
                        var datos = (JContainer)JsonConvert.DeserializeObject(json);
                        if (datos["weather"] != null)
                        {
                            Clima clima = new Clima();
                            clima.Titulo = (string)datos["name"];
                            clima.Temperatura = ((float)datos["main"]["temp"] -
                            273.15).ToString("N2") + " °C";
                            clima.Viento = (string)datos["wind"]["speed"] + " mph";
                            clima.Humedad = (string)datos["main"]["humidity"] + " %"; clima.Visibilidad =
                            (string)datos["weather"][0]["main"];
                            var fechaBase = new DateTime(1970, 1, 1, 0, 0, 0, 0);
                            var amanecer =
                            fechaBase.AddSeconds((double)datos["sys"]["sunrise"]);
                            var ocaso = fechaBase.AddSeconds((double)datos["sys"]["sunset"]);
                            clima.Amanecer = amanecer.ToString() + " UTC"; clima.Ocaso =
                            ocaso.ToString() + " UTC";
                            return clima;
                        }
                    }
                }
                return default;
            }
        }
    }


    *************************

    PaginaClima.xaml.cs

    using ClimaAPP.Clases;
    using ClimaAPP.Servicios;
    using System;
    using Xamarin.Forms;
    using Xamarin.Forms.Xaml;
    namespace ClimaAPP.Paginas
    {
        [XamlCompilation(XamlCompilationOptions.Compile)]
        public partial class PaginaClima : ContentPage
        {
            public PaginaClima()
            {
                InitializeComponent();
                this.BindingContext = new Clima();
            }
            private async void btnBuscar_Clicked(object sender, EventArgs e)
            {
                if (!String.IsNullOrEmpty(txtCiudad.Text))
                {
                    var clima = await ServicioClima.Buscar(txtCiudad.Text);
                    if (clima != null)
                    {
                        this.BindingContext = clima; btnBuscar.Text = "Buscar de nuevo";
                    }
                }
            }
        }
    }

    ***************************

    PaginaClima.xaml

    <?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="ClimaAPP.Paginas.PaginaClima">
        <ScrollView>
            <StackLayout BackgroundColor="#545454">
                <StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand">
                    <StackLayout Padding="10,10,10,10" HorizontalOptions="Start">
                        <Label Text="Clima de una ciudad" TextColor="White"
    FontAttributes="Bold" FontSize="Medium" />
                        <Label Text="Ciudad" TextColor="#a8a8a8" FontSize="Small"/>
                        <Entry x:Name="txtCiudad" TextColor="White" BackgroundColor="Black" />
                    </StackLayout>
                    <StackLayout Padding="0,0,0,10" VerticalOptions="End">
                        <Button x:Name="btnBuscar" Text="Buscar clima" WidthRequest="185"
    BorderWidth="1" Clicked="btnBuscar_Clicked"/>
                    </StackLayout>
                </StackLayout>
                <StackLayout Padding="10,10,10,10" HorizontalOptions="Start">
                    <Label Text="Ubicación" TextColor="#a8a8a8" FontSize="Small"/>
                    <Label Text="{Binding Titulo}" TextColor="White" FontSize="Medium"/>
                    <Label Text="Temperatura" TextColor="#a8a8a8" FontSize="Small"/>
                    <Label Text="{Binding Temperatura}" TextColor="White" FontSize="Medium"/>
                    <Label Text="Viento" TextColor="#a8a8a8" FontSize="Small"/>
                    <Label Text="{Binding Viento}" TextColor="White" FontSize="Medium"/>
                    <Label Text="Humedad" TextColor="#a8a8a8" FontSize="Small"/>
                    <Label Text="{Binding Humedad}" TextColor="White" FontSize="Medium"/>
                    <Label Text="Visibilidad" TextColor="#a8a8a8" FontSize="Small"/>
                    <Label Text="{Binding Visibilidad}" TextColor="White" FontSize="Medium"/>
                    <Label Text="Amanecer" TextColor="#a8a8a8" FontSize="Small"/>
                    <Label Text="{Binding Amanecer}" TextColor="White" FontSize="Medium"/>
                    <Label Text="Ocaso" TextColor="#a8a8a8" FontSize="Small"/>
                    <Label Text="{Binding Ocaso}" TextColor="White" FontSize="Medium"/>
                </StackLayout>
            </StackLayout>
        </ScrollView>
    </ContentPage>

    *************

    Clima.cs

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace ClimaAPP.Clases
    {
        class Clima
        {
            public string Titulo { get; set; }
            public string Temperatura { get; set; }
            public string Viento { get; set; }
            public string Humedad { get; set; }
            public string Visibilidad { get; set; }
            public string Amanecer { get; set; }
            public string Ocaso { get; set; }
            public Clima()
            {
                this.Titulo = "";
                this.Temperatura = "";
                this.Viento = "";
                this.Humedad = "";
                this.Visibilidad = "";
                this.Amanecer = "";
                this.Ocaso = "";
            }
        }
    }


    *****************

    gracias de ante mano por la ayuda que me puedan brindar.

    domingo, 1 de marzo de 2020 18:10

Respuestas

Todas las respuestas