Trying to bring structs from class, and getting return statement error--Cannot implicitly convert type '' to ''

William O'Gorm 61 Reputation points
2021-02-25T20:16:42.74+00:00

Hello. I'm trying to pass a struct of strings to another class, and the return statement has the error "Cannot implicitly convert 'DM.RandomNamecharacterGenerator.CharacterexportTemplate' to 'string'" TIA! Windows Forms App (NET Framework) C# namespace DM { public class RandomNameGenerator { public struct CharacterExportTemplate { public string title; public string firstname; public string lastname; } CharacterExportTemplate characterexport = new CharacterExportTemplate(); public string NameGenerator() { Random rnd = new Random(); string Titletemp = ""; string Firstnametemp = ""; string Lastnametemp = ""; characterexport.title = ""; characterexport.firstname = ""; characterexport.lastname = ""; int mf = rnd.Next(2) + 1; // Decide if character is male or female. int no = rnd.Next(10) + 1; // Decide if character is nobility. int nfn = rnd.Next(3) + 1; // Number of first names. if (no != 10) { nfn = 1; } if (mf > 1) // Female { if (no == 10) { int tt = rnd.Next(16); for (int ii = 0; ii < tt; ii++) { Titletemp = ""; Titletemp = Titletemp + Lore.TitlesFemale[ii]; } characterexport.title = characterexport.title + Titletemp + " "; } else { Titletemp = ""; } for (int i = 0; i < nfn; i++) { int fn = rnd.Next(34); for (int iii = 0; iii < fn; iii++) { Firstnametemp = ""; Firstnametemp = Firstnametemp + Lore.FirstNamesFemale[iii]; } characterexport.firstname = characterexport.firstname + Firstnametemp + " "; } } else // Male { if (no == 10) { int tt = rnd.Next(21); for (int ii = 0; ii < tt; ii++) { Titletemp = ""; Titletemp = Titletemp + Lore.TitlesMale[ii]; } characterexport.title = characterexport.title + Titletemp + " "; } else { Titletemp = ""; } for (int i = 0; i < nfn; i++) { int fn = rnd.Next(34); for (int iii = 0; iii < fn; iii++) { Firstnametemp = ""; Firstnametemp = Firstnametemp + Lore.FirstNamesMale[iii]; } characterexport.firstname = characterexport.firstname + Firstnametemp + " "; } } int ln = rnd.Next(52); for (int ii = 0; ii < ln; ii++) { Lastnametemp = ""; Lastnametemp = Lastnametemp + Lore.LastNames[ii]; } characterexport.lastname = characterexport.lastname + Lastnametemp; return characterexport; } } }

Developer technologies Windows Forms
0 comments No comments
{count} votes

Accepted answer
  1. Viorel 122.6K Reputation points
    2021-02-25T21:58:46.157+00:00

    Maybe it should be ‘public CharacterExportTemplate NameGenerator()’ instead of ‘public string NameGenerator()’.

    0 comments No comments

2 additional answers

Sort by: Most helpful
  1. William O'Gorm 61 Reputation points
    2021-02-25T20:38:50.467+00:00

    Here it is with organized code.

    namespace DM
    {
    public class RandomNameGenerator
    {
    public struct CharacterExportTemplate
    {
    public string title;
    public string firstname;
    public string lastname;
    }
    CharacterExportTemplate characterexport = new CharacterExportTemplate();
    public string NameGenerator()
    {

            Random rnd = new Random();
            string Titletemp = "";
            string Firstnametemp = "";
            string Lastnametemp = "";
            characterexport.title = "";
            characterexport.firstname = "";
            characterexport.lastname = "";
            int mf = rnd.Next(2) + 1;                              // Decide if character  is male or female.
            int no = rnd.Next(10) + 1;                             // Decide if character  is nobility.
            int nfn = rnd.Next(3) + 1;                             // Number of first names.
            if (no != 10) { nfn = 1; }
            if (mf > 1)                                            // Female
    
            {
                if (no == 10)
                {
                    int tt = rnd.Next(16);
                    for (int ii = 0; ii < tt; ii++)
                    {
                        Titletemp = "";
                        Titletemp = Titletemp + Lore.TitlesFemale[ii];
                    }
                    characterexport.title = characterexport.title + Titletemp + " ";
                }
                else { Titletemp = ""; }
                for (int i = 0; i < nfn; i++)
                {
                    int fn = rnd.Next(34);
                    for (int iii = 0; iii < fn; iii++)
                    {
                        Firstnametemp = "";
                        Firstnametemp = Firstnametemp + Lore.FirstNamesFemale[iii];
                    }
                    characterexport.firstname = characterexport.firstname + Firstnametemp + " ";
                }
            }
            else                                                   // Male 
            {
                if (no == 10)
                {
                    int tt = rnd.Next(21);
                    for (int ii = 0; ii < tt; ii++)
                    {
                        Titletemp = "";
                        Titletemp = Titletemp + Lore.TitlesMale[ii];
                    }
                    characterexport.title = characterexport.title + Titletemp + " ";
                }
                else { Titletemp = ""; }
                for (int i = 0; i < nfn; i++)
                {
                    int fn = rnd.Next(34);
                    for (int iii = 0; iii < fn; iii++)
                    {
                        Firstnametemp = "";
                        Firstnametemp = Firstnametemp + Lore.FirstNamesMale[iii];
                    }
                    characterexport.firstname = characterexport.firstname + Firstnametemp + " ";
                }
    
            }
            int ln = rnd.Next(52);
            for (int ii = 0; ii < ln; ii++)
            {
                Lastnametemp = "";
                Lastnametemp = Lastnametemp + Lore.LastNames[ii];
            }
            characterexport.lastname = characterexport.lastname + Lastnametemp;
            return characterexport;
        }
    }
    

    }

    0 comments No comments

  2. William O'Gorm 61 Reputation points
    2021-02-25T22:02:34.807+00:00

    That fixed it! Thanks!

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.