Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

C# ASP.NET MVC Basics Modeling and Presenting Data Adding Repository Methods

How to write a method that returns a field from a PRIVATE array??

I posted this question earlier, tried editing it but I get an error without any explanation (so admins please fix this bug). Anyways.. Im stuck at this example..In the video tutorial before this example was a completely different scenario, here it doesnt even make much sense.. why would you want to return a random object from an array? and how do I write this method(That takes no parameters) and returns a field from a PRIVATE array within the same class. Since they both static I`m assuming it would be visible like this VideoGamesRepository._videoGames ? I dont know.. can someone enlighten me here? Thx in advance !

VideoGamesRepository.cs
using Treehouse.Models;

namespace Treehouse.Data
{
    public static class VideoGamesRepository
    {
        // TODO Add GetVideoGames method

        // TODO Add GetVideoGame method
        public  Videogame GetVideoGames()
        {



          return  VideoGame;
        }    

        private static VideoGame[] _videoGames = new VideoGame[]
        {
            new VideoGame()
            {
                Id = 1,
                Title = "Super Mario 64",
                Description = "Super Mario 64 is a 1996 platform video game developed and published by Nintendo for the Nintendo 64.",
                Characters = new string[]
                {
                    "Mario",
                    "Princess Peach",
                    "Bowser",
                    "Toad",
                    "Yoshi"
                },
                Publisher = "Nintendo",
                Favorite = true
            },
            new VideoGame()
            {
                Id = 2,
                Title = "Mario Kart 64",
                Description = "Mario Kart 64 is a 1996 go-kart racing game developed and published by Nintendo for the Nintendo 64 video game console.",
                Characters = new string[]
                {
                    "Mario",
                    "Princess Peach",
                    "Bowser",
                    "Toad",
                    "Yoshi"
                },
                Publisher = "Nintendo",
                Favorite = false
            }
        };
    }
}
VideoGame.cs
namespace Treehouse.Models
{
    // Don't make any changes to this class!
    public class VideoGame
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string[] Characters { get; set; }
        public string Publisher { get; set; }
        public bool Favorite { get; set; }

        public string DisplayText
        {
            get
            {
                return Title + " (" + Publisher + ")";
            }
        }
    }
}

1 Answer

Steven Parker
Steven Parker
218,635 Points

Since _videoGames is private, you can't access it directly from outside of the class using dot notation. That's why you're creating a "getter" method. The method can then be called to access the array (the whole thing, not a random element from it).

Also, notice that in this challenge you will create two methods in different tasks. One has a plural name (ending in "s") and the other has a singular name. Be careful not to get them confused. The singular one will return a single element using an argument that is passed in the call.