C# Return Different Types?

后端 未结 15 2079
无人及你
无人及你 2020-12-08 09:11

I got something like this:

public [What Here?] GetAnything()
{
     Hello hello = new Hello();
     Computer computer = new Computer();
     Radio radio = ne         


        
15条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-08 09:53

    Let the method return a object from a common baseclass or interface.

    public class TV:IMediaPlayer
    {
       void Play(){};
    }
    
    public class Radio:IMediaPlayer
    {
       void Play(){};
    }
    
    public interface IMediaPlayer
    {
       void Play():
    }
    
    public class Test
    {
      public void Main()
      {
         IMediaPlayer player = GetMediaPlayer();
         player.Play();
      }
    
    
      private IMediaPlayer GetMediaPlayer()
      {
         if(...)
            return new TV();
         else
            return new Radio();
      }
    }
    

提交回复
热议问题