return type is less accessible than method

Solution 1:

Make the Recipe class public.

Solution 2:

Your Recipe class is less accessible than the method. You should check that Recipe is not private/internal and that you can see the Recipe class from outside that class scope (quick fix declare Recipe a public class).

As pointed out by Michael Stum in a comment below classes without an access modifier are by default either internal or private (if it's a nested class). This is possibly where your issue is and you may have just declared class Recipe instead of public class Recipe

Solution 3:

Syntax error?

private List<Recipe> listOfRecipes = new List<Recipe> {};

should be:

private List<Recipe> listOfRecipes = new List<Recipe>();

Additionally, you could simply use LINQ to get your result, I'm not in VS, but something like this...

public Recipe getRecipe(string name)
{
    return listOfRecipes.Where(c => c.RecipeName == name).SingleOrDefault();
}

Solution 4:

As the error message clearly states, the Recipe class is less accessible (eg, not public) than your method.