Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi C# Fonksiyon Sonuç Döndürme Farkı
#1
Selam


if (c = 0) then
begin
   if (s < 201) then Result:= '2';
   if (s < 401) then Result:= '4';
   if (s < 601) then Result:= '6';
end;

Delphi, beklenildiği üzere 600 den küçük her değerde 6 sonucunu döndürüyor. Ama C#

if (c == 0)
{                
   if (s < 201) return "2";
   if (s < 401) return "4";
   if (s < 601) return "6";
}

2,4,6 sonuçlarını gösterebiliyor. Delphi ile şartları büyükten küçüğe sıralarsak istediğimizi yaparız ben orasında değilim de bu farkın teknik sebebini çok merak ettim.
Cevapla
#2
Delphi çalıştırabileceği/ şartları sağlayan son Result komutuna kadar ilerler. C de ise ilk Return komutunda işlemi yarıda keser.
İşin teknik nedenini bilmiyorum ama tecrübe ve deneyimlerim bu yönde. Smile
Cevapla
#3
Buradaki sonuç programlama mantığında yatıyor.
Aslında delphide ilk kontrol sonucunda result = 2 oluyor ama program çalışmaya devam ettiği için alttaki satırı işleme alıyor ve bu sefer sonuc yanı Result = 4 oluyor. Program çalışmaya devam ettiği için 3. sartırı da işleme sokuyor ve sonuç normal olarak 6 oluyor. Ama C kodunda return var. Yani koşul sağlandığında, diğer satırlar işlenmiyor ve { . . } bloğundan çıkıyor.
Cevapla
#4
@enigma Hocam teşekkürler, iki dili de tasarlayan aynı adam ama farklı bakış açıları getirmiş demek ki. Ayrıca C# (Python) böyle şartlı metotlarda mutlaka bir sonucun döneceği yapı istiyor, bizim Delphi sağ olsun biraz Nasreddin Hoca misali uysa da döndürürüm uymasa da diyor Smile
Cevapla
#5
en azından dönüş emri doğru olsaydı size hak verirdim.

Şöyle deneyin... Bakalım benzerlik oluştu mu ?

function Ornek: String;
const
  c = 0;
  s = 0;
begin
  if (c = 0) then
  begin
     if (s < 201) then Exit('2'); //Result:= '2';
     if (s < 401) then Exit('4'); //Result:= '4';
     if (s < 601) then Exit('6'); //Result:= '6';
  end;
end;



  showmessage( ornek() );
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#6
@mrmarman Tamamen benim cahilliğimmiş, açık konuşayım böyle bir kullanım olduğunu bilmiyordum, teşekkürler.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi Memo bilgileri MS-Word aktarmak Metin 1 118 25-06-2025, Saat: 09:49
Son Yorum: elixir84
  delphi görsel eğitim seti arıyorum atakansarr 1 203 29-04-2025, Saat: 08:47
Son Yorum: RAD Coder
  Favorite Management Plugin for Delphi 12.x IDE gbg 0 145 28-04-2025, Saat: 18:55
Son Yorum: gbg
Photo Delphi 12.2ilginç bir ide hatası tuna 13 2.142 25-03-2025, Saat: 09:47
Son Yorum: tuna
Photo Delphi 12 ve Android turkcann 5 619 03-03-2025, Saat: 08:54
Son Yorum: RAD Coder



Konuyu Okuyanlar: 1 Ziyaretçi