Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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
seal-mask
.a{fill-rule:evenodd;}techdegree
Henrik Christensen
Python Web Development Techdegree Student 38,322 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 :-)