Soru VB6'da Alt ve İşlev arasındaki fark nedir?


Bazı eski VB kodlarından geçiyorum ve bunlar gibi işlev tanımlarına giriyorum -

 Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer

 Private Sub cmdCustomerList_Click()

Fark ne?


44
2018-04-13 13:26


Menşei


Excel'de, ata makro msgbox'ındaki şekillere atamak için sadece 'Subs' mevcuttur. - SAm


Cevaplar:


Fonksiyonu geri döndürüyor, Sub değil. Bu kadar basit.


105
2018-04-13 13:27



Tamam. Cevap için teşekkürler. - CodeBlue
+1. Kullanım kılavuzu diyor: "Bir İşlev prosedürü gibi, bir Alt prosedür de argümanları alabilen, bir dizi ifade gerçekleştirebilen ve argümanlarının değerini değiştiren ayrı bir prosedürdür. Ancak, bir değer döndüren bir İşlev prosedüründen farklı olarak, bir Alt prosedür Bir ifadede kullanılmamalıdır. " Biraz uzun soluklu görünüyor, ancak bir Sub ve Fonksiyonun neler yapabileceği hakkında size ek bilgi verdikleri içindir. - MarkJ


Bir işlev, bir ifadede de kullanılabilir. Bir Altprogram yapamaz. İşlevler, kodunuzun okunabilirliğine bir alt programdan daha iyi borç verebilir.

İşte bir fonksiyonun okunabilirliği nasıl artırabileceğine dair bir örnek:

If AccountIsLocked("JJones") then Msgbox("This account is locked")

bu işlev bir yerlerde tanımlanabilir

public function AccountIsLocked(UserId as string) as boolean
   dim usr = uow.AccountRepository.UserInfo(UserId)
   return usr.locked
end function

İşte aynı örnek ancak bir altprogram ile kodlanmış:

CheckIfAccountLocked("JJones")

ve bu alt bölümün tanımlandığı yerler:

public sub CheckIfAccountLocked(UserId)
       if uow.AccountRepository.UserInfo(UserId).locked then
          msgbox("Account is locked")
       end if
end sub

Ayrıca, değeri kontrol etmenin eylemden ayrıldığını da unutmayın - bu, görevlerin ayrılmasına katkıda bulunur. İşlev yeniden kullanılabilirliğe yönelir.

VB6 ile parantezleri yöneten bazı garip kurallar vardır. Eğer bir alt parametresi yoksa, parantez gerekli değildir (Visual Studio'nun parantezi kaldırabileceğini düşünüyorum). Bunun bir yolu, altınızdaki "Arama" anahtar kelimesini eklemektir.

Call CheckIfAccountLocked()

vs

CheckIfAccountLocked

15
2017-11-18 16:33



En iyi cevap burada - hydroper


Fonksiyonda değerleri boole, string ve diğer veri veri tipleri olarak döndürebiliriz.

ama alt herhangi bir şey döndürmez. Sadece verdiğimiz kod ve talimatı yürütür. Bunlar aynı zamanda yöntemler olarak kabul edilir

Sub, kontrol olaylarında da kullanılır ve bu olaylar da herhangi bir değer döndürmez.

örneğin bir komut düğmesinin tıklama olayı: Özel alt cmd_click ()

bitiş alt


4
2017-08-23 11:12





Her ikisi de kod yazacak bölümlerdir, ancak bir işlev bir değer döndürmelidir. Örneğin, karmaşık bir matematiksel prosedürün yürütülmesi gereken bir programınız varsa, basitçe bir işlev yaparsınız ve karmaşık matematik kodunu oraya ve hesaplama yapmak istediğiniz herhangi bir zamana sahip olursanız, sadece işlevi çağırabilirsiniz. . Umarım bunu açıklamamdan emin olmadı.


3
2018-04-30 09:20





VB6'da Alt ve İşlev arasındaki fark nedir?

"alt"bazı eylemleri gerçekleştirebilir. "alt" hiçbir değer döndürmez.

Örnek:

Form_Load ()

"fonksiyon"Ayrıca bazı eylemleri gerçekleştirebilir, ancak aynı zamanda çağrıldığı noktaya bir değer döndürür.  "İşlevler, genellikle bir değişkeni temel alan bir değer döndürür"

Örnek:

Val (), FormatPercentage ().


2
2017-08-25 09:25





vb içinde işlev

  • bir işlev bazı değerler / değerler döndürmelidir
  • Sözdizimi: özel işlev fun_name (argüman / s (isteğe bağlı)) return_type (integer, string ..) olarak  geri dönüş değeri  son işlev
  • fun_name (argümanlar (isteğe bağlı)) işlev çağrısı için yeterlidir

vb

  • bir alt herhangi bir değer / s dönmek gerek yok
  • Sözdizimi: özel alt alt isim (argüman / s (isteğe bağlı))

    bitiş alt

  • alt öğe (argümanlar (isteğe bağlı)) işlev çağrısı için yeterlidir

0
2017-07-09 06:19





Bir fonksiyon veri ve kodu tutar. Ancak bir alt program sadece kod içerir, ancak veri içermez.


-1
2018-02-17 19:49





  1. İşlevlerin sözdizimi Fonksiyon olacak ... Son işlev ve Alt için Alt ... End Sub.
  2. İşlevler nesneye sahip olabilir veya olmayabilir, ancak alt nesneler içermez
  3. Sub'in olmadığı yerlerde işlevler tekrar kullanılabilir
  4. İşlevler valsleri döndürebilir, ancak alt doz değil
  5. İşlevler nesne deposu içerebilir, ancak alt
  6. Fonksiyonların genişletilmesi .qfl, bunun alt kısmıdır.

-1
2018-04-03 17:00