Saya punya metode ini

public void downloadAndSendFile(string fileType,
                                bool IsSendMail = false, 
                                string toEmail = "", 
                                string subject = "")
{
}

Aku ingin melakukan ini,

  • jika pengguna melewati IsSendMail = true saat memanggil metode ini, maka argumen toEmail dan subject adalah wajib
0
harshil 9 November 2017, 09:12
1
Mengapa Anda tidak dapat menggunakan blok if-else untuk memeriksa dan memvalidasi ini?
 – 
Souvik Ghosh
9 November 2017, 09:19
Untuk jika blok lain harus melewati SendMail, toEmail="", subject="" . saya tidak ingin melakukan hal semacam ini saat memanggil metode
 – 
harshil
9 November 2017, 09:23

2 jawaban

Bagaimana dengan menggunakan 2 kelebihan metode sebagai gantinya?

public void downloadAndSendFile(string fileType)

Dan

public void downloadAndSendFile(string fileType,
                            string toEmail, 
                            string subject)

Alasan saya di balik ini adalah bahwa Anda tidak memerlukan parameter IsSendMail sama sekali. Semua itu menunjukkan apakah akan ada 2 argumen lagi dalam pemanggilan metode. Jika hanya itu, mengapa tidak menghapusnya dan melakukan hal yang berbeda tergantung pada parameter yang dimasukkan? Jika Anda membutuhkan nilai IsSendMail di dalam metode, Anda dapat mengasumsikan bahwa nilai tersebut benar pada kelebihan kedua, dan salah pada kelebihan pertama.

2
Sweeper 9 November 2017, 09:53
 public void downloadAndSendFile(string fileType,
                            bool IsSendMail, 
                            string toEmail, 
                            string subject)
{
  if(IsSendMail)
  {
      ... code ... 
    Console.WriteLine(toEmail + subject);
  }
  else
 {
      ... code ... 
  }
}
0
주태민 9 November 2017, 10:11