C# C# Streams and Data Processing Parsing Data Working with DateTime

is static method declared outside of static main method?

Hi, I used to declare ,in program cs, methods inside of main method. But in last couple of lessons , speaker declared static ParseWeatherForecast methods outside of static main methods. Is it because static should be declared outside of static main method or all method should be outside of main if it is declared in the same program.cs? Becasue when I declared it inside of main method, it fails compiling.

Program.cs
using System;
using System.IO;

/*Create a static method named ParseWeatherForecast that takes a string[] parameter named values and returns a WeatherForecast.
Instantiate a WeatherForecast variable named weatherForecast and assign the appropriate value in the values array to the WeatherStationId property.
Use the sample data shown in WeatherForecast.cs to determine which value in the array is the WeatherStationId.

Don't forget to return the weatherForecast in the new method!*/

namespace Treehouse.CodeChallenges
{
    public class Program
    {


        public static void Main(string[] arg)
        {

        }

        public static WeatherForecast ParseWeatherForecast(string[]  values)
            {

                var weatherForecast = new WeatherForecast();
                string weatherstationid = values[0];

                weatherForecast.WeatherStationId = weatherstationid;


                return weatherForecast;
            }
    }
}
WeatherForecast.cs
using System;

/* Sample CSV Data 

weather_station_id,time_of_day,condition,temperature,precipitation_chance,precipitation_amount
HGKL8Q,06/11/2016 0:00,Rain,53,0.3,0.03
HGKL8Q,06/11/2016 6:00,Cloudy,56,0.08,0.01
HGKL8Q,06/11/2016 12:00,PartlyCloudy,70,0,0
HGKL8Q,06/11/2016 18:00,Sunny,76,0,0
HGKL8Q,06/11/2016 19:00,Clear,74,0,0
*/

namespace Treehouse.CodeChallenges
{
    public class WeatherForecast
    {
        public string WeatherStationId { get; set; }
    }
}

1 Answer

Henrik Christensen
Henrik Christensen
Python Web Development Techdegree Student 38,293 Points

It's because you don't declare a method inside another method - the same goes for non-static methods

class SomeClass
{
    private string _name = "Bob";

    public string GetName()
    {
        return _name;
    }

    public void SetName(string name)
    {
        _name = name;
    }
}

Here you can see that SetName() is not declared inside GetName() which is just like with the Main method not having other methods declared inside it - I hope this makes sense :-)