© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•2y ago•
8 replies
Steadhaven

How to refactor lots of overloaded methods more smartly?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MethodOverload
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var person1 = new PersonModel("Peter", "Wow","Email@email.com");
            person1.GenerateEmail("gmail.com", true);
            Console.WriteLine(person1.Email);
            Console.ReadLine();
        } 
    }

    public class PersonModel
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public PersonModel()
        {
            //method overloading
            
        }
        public PersonModel(string firstName, string lastName, string email)
        {
            FirstName = firstName;
            LastName = lastName;
            Email = email;
        }

        public void GenerateEmail()
        {
            Email = $"{FirstName}.{LastName}@aol.com";
        }
        public void GenerateEmail(string domain)
        {
            Email = $"{FirstName}.{LastName}@{domain}";
        }

        public void GenerateEmail(bool firstInitialMethod)
        {
            if (firstInitialMethod == true)
            {
                Email = $"{FirstName.Substring(0,1)}{LastName}@aol.com";
            }
            else
            {
                Email = $"{FirstName}.{LastName}@aol.com";
            }
        }

        public void GenerateEmail(string domain, bool firstInitialMethod)
        {
            if (firstInitialMethod == true)
            {
                Email = $"{FirstName.Substring(0, 1)}{LastName}@{domain}";
            }
            else
            {
                Email = $"{FirstName}.{LastName}@{domain}";
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MethodOverload
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var person1 = new PersonModel("Peter", "Wow","Email@email.com");
            person1.GenerateEmail("gmail.com", true);
            Console.WriteLine(person1.Email);
            Console.ReadLine();
        } 
    }

    public class PersonModel
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public PersonModel()
        {
            //method overloading
            
        }
        public PersonModel(string firstName, string lastName, string email)
        {
            FirstName = firstName;
            LastName = lastName;
            Email = email;
        }

        public void GenerateEmail()
        {
            Email = $"{FirstName}.{LastName}@aol.com";
        }
        public void GenerateEmail(string domain)
        {
            Email = $"{FirstName}.{LastName}@{domain}";
        }

        public void GenerateEmail(bool firstInitialMethod)
        {
            if (firstInitialMethod == true)
            {
                Email = $"{FirstName.Substring(0,1)}{LastName}@aol.com";
            }
            else
            {
                Email = $"{FirstName}.{LastName}@aol.com";
            }
        }

        public void GenerateEmail(string domain, bool firstInitialMethod)
        {
            if (firstInitialMethod == true)
            {
                Email = $"{FirstName.Substring(0, 1)}{LastName}@{domain}";
            }
            else
            {
                Email = $"{FirstName}.{LastName}@{domain}";
            }
        }
    }
}
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

✅ Is it possible to refactor this methods and create only one?
C#CC# / help
3y ago
why do we declare overloaded operators as `static` methods?
C#CC# / help
16mo ago
How to force implementation of concrete interface methods
C#CC# / help
4y ago
✅ array of methods
C#CC# / help
17mo ago