Sabit kullanmak için bu doğru bir durum mu?


42

Böylece profesör, üzerinde çalıştığım bir proje hakkında geri bildirimde bulunuyordu. Bu kod için birkaç not aldı:

if (comboVendor.SelectedIndex == 0) {
  createVendor cv = new createVendor();
  cv.ShowDialog();
  loadVendors();
}

Bu bir açılan kutu "dizin değişti" işleyicisi içinde. Kullanıcı yeni bir satıcı oluşturmak istediğinde kullanılır, üst seçeneğim (hiç değişmeyen dizin 0) "Yeni bir satıcı oluştur" iletişim kutusunu açar. Böylece açılan kutumun içeriği şöyle gözüküyor:

Create New Vendor...
Existing Vendor
Existing Vendor 2
Existing Vendor 3

Onun sorunu ilk satır koduyla:

if (comboVendor.SelectedIndex == 0)

O'nun sabit olması gerektiğini iddia etti ve bu yüzden beni gerçekten işaretler altına aldı. Kodumda değişmezleri kullanmamam gerektiğini söylüyor.

Mesele şu ki, neden bu durumda bu kodu sabit yapmak istediğimi anlamıyorum. Bu endeks asla değişmeyecek, ayrıca ince ayar yapmanız gereken bir şey de olmayacak. Çok özel bir durum için kullanılan ve hiçbir zaman değişmeyen bellekte tek bir 0'ı tutmak hafıza kaybı gibi görünüyor.


32
Dogmatik davranıyor. Sihirli sayılar genelde kaçınılması gereken iyi bir şeydir. Bence bu kuralın istisnaları olarak -1, 0 ve 1 sayılabilir. Ayrıca, bunun gibi bir sabit, değişmez 0'dan daha fazla yer tutmaz.
Dave Mooney

23
@DaveMooney: Burada diz gerginliği olmadığına emin misin? Bu gibi şeyler doğrudur -1içinde str.indexOf(substr) != -1"için striçeriyor substr" prefectly haklı. Fakat burada, 0'ın anlamı ne açıktır (ne yeni bir satıcı oluşturmakla ilişkisi nedir?) Ne de gerçekten sabittir (ne yeni bir satıcı oluşturmanın yolu değişirse?).

62
kuralları
çiğnemeden

12
Beklenmedik bir şekilde benim için bu yöntem başarısız oldu. Liste alfabetik olarak sıralandı. Kullandım - - Yeni oluştur - - böylece kısa çizgiler ilk ve sabit kodlanmış dizin 0'ı CreateNew yöntemine göre sıralar. Sonra birisi, kısa çizgi önce sıralayan 'My Item' adlı tek bir alıntı ile başlayan bir madde ekledi . Kodlamam, listenin bir sonraki yüklenişinde programın çökmesine neden oldu. Müşterinin verilerini kurtarmak için listenin veri dosyasını el ile değiştirmek zorunda kaldım.
El-E-Yiyecek

14
int.ZeroOnu mutlu etmek için bunun yerine kullanabilirsiniz :)
Paul Stovell

Yanıtlar:


90

Bunu C # 'da yapmanın asıl doğru yolu ComboItems'in sırasına hiç güvenmemektir .

public partial class MyForm : Form
{
    private readonly object VENDOR_NEW = new object();

    public MyForm()
    {
        InitializeComponents();
        comboVendor.Items.Insert(0, VENDOR_NEW);
    }

    private void comboVendor_Format(object sender, ListControlConvertEventArgs e)
    {
        e.Value = (e.ListItem == VENDOR_NEW ? "Create New Vendor" : e.ListItem);
    }

    private void comboVendor_SelectedIndexChanged(object sender, EventArgs e)
    {
        if(comboVendor.SelectedItem == VENDOR_NEW)
        {
            //Special logic for selecting "create new vendor"
        }
        else
        {
            //Usual logic
        }
    }
}

22
Eğer bu C # ise, ALL_CAPS'ı sabitler için kullanmamalısın. Sabitler PascalCased olmalıdır - stackoverflow.com/questions/242534/…
Groky

4
@Groky: Bu neden önemli? Sabitlerini nasıl adlandırdığı kimin umurunda? ALL_CAPS'ı sabitler için tutarlı bir şekilde kullanıyorsa, bu% 100 doğrudur.
marco-fiset

4
@ marcof: Eğer sabitler genel bir arayüzün parçasıysa, o zaman MS adlandırma kurallarını izlemelidir. Eğer değilse, o zaman en azından erken en iyi uygulamayı öğreniyor olmalı.
Groky

2
Bu hala yanlıştır. Sorunu bir tamsayı değişmezden (sıfır) almaktan bir dize değişmezine (Yeni Satıcı Oluştur) kaydırır. En iyi ihtimalle sorun şu ki, 'dizin değişirse' yerine 'etiket değişirse' şeklindedir.
Freiheit

7
@Freiheit: Yanlış. Buradaki string sabiti sadece gösterim içindir; Programın mantığını hiçbir şekilde etkilemez. Program-durumunu saklamak için sihirli-değerler / dizeler kullanmaktan farklı olarak, bu dizeyi değiştirmek (ya da listeden bir şey eklemek / çıkarmak) hiçbir şeyi kıramaz.
BlueRaja - Danny Pflughoeft

83

Birleşik giriş kutusundaki sıra değişebilir. "Yeni Satıcı Oluştur ..." dan önce "Özel Satıcı Yarat ..." gibi başka bir seçenek eklerseniz ne olur?

Bir sabit kullanmanın avantajı, birleşik giriş kutusunun sırasına bağlı olarak birçok yöntemin mevcut olması durumunda, sadece değişkeni değiştirmeniz gerekir, ancak değişmesi durumunda tüm yöntemleri değil.

Bir sabit kullanmak da bir değişmezden daha okunur.

if (comboVendor.SelectedIndex == NewVendorIndex)

Derlenmiş dillerin çoğu derleme zamanında sabiti değiştirir, bu nedenle performans cezası yoktur.


5
Değer niteliğinde açıklayıcı bir kod kullanırdım, değişebilecek bir dizine dayanmak yerine (create seçeneğini listenin en altına taşıdığınızda kesinlikle sabit yöntemi kırar). O zaman sadece bu kodu arayın.
CaffGeek

1
@ Bir gui sırasına göre kontrolleri belirleme konusunda çok katılıyorum katılıyorum. Dil, aranabilecek gui elemanına değer katmayı destekliyorsa, onu kullanırım.
Michael Krussel

3
@solution çünkü kongre bu.
Ikke

3
@Ikke Bu kesinlikle bir kongre değil. stackoverflow.com/questions/242534/…
SolutionYogi

1
C # hakkında konuşuyorsak kongre NewVendorIndex IS olur. .NET stilinin geri kalanıyla tutarlı.
MaR

36

Tarif ettiğiniz bu durum bir yargılama çağrısıdır, şahsen bir kez kullanılmışsa ve zaten okunabilirse bir tanesini kullanmam.

Gerçi asıl cevap, sana bir ders vermek için bunu seçti.

Unutmayın ki o bir profesör, işi size kodlama ve en iyi uygulamaları öğretmektir.

Aslında çok iyi bir iş çıkardığını söyleyebilirim.

Elbette biraz mutlak gelebilir, ancak sihirli sayıları kullanmadan önce tekrar düşüneceğinizi eminim.

Ayrıca, programcılar hakkında çevrimiçi bir topluluğa katılmanız ve bu durumda en iyi uygulama olarak neyin kabul edildiğini öğrenmeniz için derinin altına girdi.

Profesörünüze şapka çıkartın.


, Bu durumda, araçların sonuç sonucunu haklı çıkardığını gösteren +1
oliver-clare 16

@ Thanos- " Bir profesör olduğunu unutma, işi size kodlama ve en iyi uygulamaları öğretmektir. " Profesörüm için asla böyle olmadı. Görevi, kurs kurulduktan sonra departmanın neyin önemli olduğunu düşündüğünü öğretmektir.
Ramhound

13

[...] en iyi seçeneğim (hiç değişmeyen dizin 0) "yeni bir satıcı oluştur" iletişim kutusunu açar.

Bunu neden bir sabit kullanmanız gerektiğini kanıtladığınızı açıklamak zorundaydınız. Bunun gibi bir sabit eklerseniz NEW_VENDOR_DIALOG, kodunuz daha açıklayıcı olur. Ayrıca, derleyiciler sabitleri optimize eder, böylece performansta bir değişiklik olmaz.

Derleyiciler için değil, programcılar için programlar yazın. Özel olarak mikro optimizasyon yapmaya çalışmadığınız sürece, ki bu sizin gibi görünmüyor.


2
-1 bile performans bahsetti. Bir bilgisayar optimize edilmese bile, kullanıcı uyarmadan önce milyarlarca işlem yapabilir.
Boris Yankov

3
@ Boris OP kaynakların israfı konusunda endişeli görünüyordu, bu yüzden bundan bahsetmiştim. Bu yüzden cevabımın nasıl daha az doğru olacağını anlamıyorum.
kba

12

O'nun sabit olması gerektiğini iddia etti ve bu yüzden beni gerçekten işaretler altına aldı.

Katılıyorum. Burada sıfır kullanımı "sihir" dir. Bu kodu ilk defa okuduğunuzu düşünün. Sıfırın neden özel olduğunu bilmiyorsunuz ve gerçek anlamıyla size sıfırın neden özel olduğu hakkında hiçbir şey söylemiyor. Bunun yerine if(comboVendor.SelectedIndex == CreateNewVendorIndex), söylerseniz, kodun ne anlama geldiğini ilk kez okuyan için son derece netleşir.

Kodumda değişmezleri kullanmamam gerektiğini söylüyor.

Bu aşırı bir pozisyon; gerçekçi bir konum, değişmezlerin kullanımının, kodun olabileceği kadar açık olmayabileceğini gösteren kırmızı bir bayrak olduğunu söylemek olacaktır. Bazen uygun olur.

Mesele şu ki, neden bu durumda bu kodu sabit yapmak istediğimi anlamıyorum. Bu endeks asla değişmeyecek

Asla değişmeyecek olması, onu sabit yapmak için mükemmel bir nedendir . Bu yüzden sabitler sabit olarak adlandırılır; çünkü asla değişmezler.

ayrıca ince ayar yapmanız gereken bir şey de değil.

Gerçekten mi? Birinin birleşik giriş kutusundaki şeylerin sırasını değiştirmek isteyebileceği herhangi bir durum göremiyor musunuz?

Gelecekte bu kudreti değişim için iyi bir sebep olmasının bir nedeni görebilirsiniz gerçeği değil de sabit olun. Aksine, sabit olmayan salt okunur statik bir tamsayı alanı olmalıdır. Sabit, her zaman aynı kalması garanti edilen bir miktar olmalıdır . Pi ve altın atom sayısı iyi sabitlerdir. Sürüm numaraları değil; Her sürümü değiştirir. Altının fiyatı açıkça berbat bir sabittir; her saniye değişir. Sadece hiç değişmeyen, sürekli olan şeyler yapın .

Çok özel bir durum için kullanılan ve hiçbir zaman değişmeyen bellekte tek bir 0'ı tutmak hafıza kaybı gibi görünüyor.

Şimdi maddenin kaynağına geliyoruz.

Bu belki de sorunuzdaki en önemli çizgidir, çünkü (1) hafızayı ve (2) optimizasyonu derinlemesine hatalı anladığınızı gösterir. Öğrenmek için okuldasınız ve şimdi temelleri doğru bir şekilde anlamak için harika bir zaman olabilir. Neden “bir sıfırı hafızaya almanın bir hafıza kaybı” olduğuna inandığınızı ayrıntılı olarak açıklayabilir misiniz? Öncelikle, neden en az iki milyar bayt kullanıcı adreslenebilir depolama ile bir işlemde dört bayt bellek kullanımını optimize etmenin önemli olduğuna inanıyorsunuz? İkincisi, burada tam olarak hangi kaynağın tüketildiğini hayal ediyorsunuz ? “Hafıza” nın tüketilmesi ile ne demek istiyorsunuz?

Öncelikle bu soruların cevaplarıyla ilgileniyorum çünkü onlar optimizasyon ve hafıza yönetimi anlayışınızın nasıl yanlış olduğunu öğrenmeniz için bir fırsattır, ikincisi de yeni başlayanların neden tuhaf şeylere inandıklarını bilmek istediğimden emin olmak isterim; doğru inançlara sahip olmalarını sağlamak için daha iyi araçlar.


6

O haklı. Haklısın. Yanılıyorsun.

Kavramsal olarak, sihirli sayılardan kaçınılması gerektiği konusunda haklı. Sabitler, numaranın ne anlama geldiğine bağlam ekleyerek kodu daha okunabilir hale getirir. Gelecekte, birisi kodunuzu okuduğunda, neden belirli bir numaranın kullanıldığını biliyorlar. Ve çizginin aşağısındaki bir yerde bir değeri değiştirmeniz gerekiyorsa, belirli bir sayının kullanıldığı her yeri aramaya çalışmak yerine, bir yerde değiştirmek çok daha iyidir.

Olduğu söyleniyor, haklısın. Bu özel durumda, bir sabitin garanti edildiğini gerçekten sanmıyorum. Listedeki ilk öğeyi arıyorsunuz, bu her zaman sıfırdır. Asla 23 olmayacak. Veya -pi. Özellikle sıfır arıyorsunuz. Gerçekten, kodu sabit hale getirerek yığılmaya ihtiyacınız olduğunu sanmıyorum.

Yine de yanılıyorsunuz, bir sabitin 'bellek kullanarak' bir değişken olarak taşındığını varsayarsak. İnsan ve derleyici için bir sabit var. Derleyiciye bu değeri derleme sırasında bu noktaya koymasını söyler, aksi takdirde değişmez bir sayı koydunuz. Ve sabiti bellekte taşımasına rağmen, en zorlu uygulamalar dışındaki herkes için verimlilik kaybı bile ölçülemezdi. Tek bir tamsayı için bellek kullanımı konusunda endişe, kesinlikle 'erken optimizasyona' girer.


1
Üçüncü paragraf için olmasaydı, 0 harfinin kullanılmasının yeterince açık ve sabit olmadığını garanti ederek, bu cevabı neredeyse oy kullanacaktım. Çok daha iyi bir çözüm, birleşik giriş kutusunun dizine eklenmesine değil , seçilen öğenin değerine bağlı olacaktır. Sihirli sabitler 0 veya 3,14 olsalar da veya ne olursa olsun sihirli sabitlerdir - kodları daha okunabilir hale getirdiğinden bunları uygun şekilde adlandırın.
Roland Tepp,

Listedeki değeri kullanmak daha iyi olabilir, ancak sorusunun anlamı bu değildi. Sorusu, bunun bir sabit için uygun bir kullanım olup olmadığıyla ilgiliydi. Ve eğer GUI ile etkileşime girme bağlamında 0 ile karşılaştırılıyorsa (ne olursa olsun - belki de biri değere bakılmaksızın ilk yumruk ürünü arıyorsa), o noktada bir sabit kullanmanın gereksiz olacağını düşünüyorum.
GrandmasterB

Aynı fikirdeyim ... Sadece koda bakmaktan itibaren, 0'ın öneminin ne olduğu hemen belli olmaz - gerçekten her zaman listedeki ilk öğeyi arıyor olabilir, o kadar ki, ama o zaman Karşılaştırma yerine 'comboVendor.SelectedIndex == FirstIndex' olsaydı çok daha temiz okuyacak mıydı?
Roland Tepp

2

Bunun 0gibi bir anlamı açıklığa kavuşturmak için bunun yerine bir sabit koyardım NewVendorIndex. Siparişinizin değişip değişmeyeceğini asla bilemezsiniz.


1

Profesörünüzün toplam tercihi budur. Normalde, değişmez sadece birden fazla kez kullanılacaksa, okuyucunun satırın amacının ne olduğunu açıkça belirtmek istiyorsanız veya değişmeziniz gelecekte değişecek ve sadece değişmek isteyeceksiniz. tek bir yerde. Ancak, bu sömestr için profesör patrondur, o yüzden bundan böyle o sınıfta yaparım.

İş dünyası için iyi eğitim? Büyük olasılıkla.


2
"Eğer değişmez birden fazla kez kullanılacaksa sadece bir sabit kullanın" bölümüne katılmıyorum. 0 (ve belki de -1, 1) genellikle açıktır, çoğu durumda, kodu okurken daha net olan bir şeye bir ad vermek iyidir.
johannes

1

Dürüst olmak gerekirse, kodunuzun en iyi yöntem olduğunu düşünmeme rağmen, önerisi açıkçası biraz garip.

Bir .NET combobox için daha yaygın bir uygulama, "Seç .." öğesine boş bir değer vermektir, gerçek öğeler ise anlamlı değerlere sahiptir ve ardından şunları yapar:

if (string.IsNullOrEmpty(comboVendor.SelectedValue))

ziyade

if (comboVendor.SelectedIndex == 0)

3
Örnekte, null basit bir başka değişmezdir. Bu dersin kalbi, değişmezlerden kaçınılması gerektiğidir.
overslacked

@overslacked - Örneğimde boş bir yazı yok.
Carson63000

Boş bir değişmez olsa bile, boş kullanılacak bir değişmezdir, bir nesneye yapılan başvurunun boş olup olmadığını kontrol etmeden boş olup olmadığını kontrol etmenin bir yolu olduğuna bile inanmıyorum.
Ramhound

Carson63000 - IsNullOrEmpty kullanımınıza değiniyordum. Bir "sihirli değer" diğeri için değiştiriyorsunuz. @Ramhound - Null, bazı durumlarda kabul edilebilir bir değişmezdir, soru yoktur, ancak bunun iyi bir örnek olduğuna inanmıyorum (boş veya sihirli bir değer olarak kullanarak).
overslacked

"Küçük bir grotesk" için -1. Haklı olmakla birlikte, değeri kullanmanın daha geleneksel ve anlaşılması daha kolay olur, eğer seçilen
dizini

1

O, sabitleri kullanmanın değerini vurgulamakta yanlış değildir ve değişmezleri kullanmakta yanlış değilsiniz. Bunun beklenen kodlama stili olduğunu vurgulamadığı sürece, değişmezleri kullandıkları için zararsız olmadıkları için işaretleri kullanmamalısınız. Ticari kodda her yerde kullandığı değişmezleri gördüm.

Onun meselesi olsa iyi. Sizi sabitlerin faydalarından haberdar etmenin yolu bu olabilir :

1-Kodunuzu yanlışlıkla kurcalamaya karşı korurlar

2-@DeadMG'nin dediği gibi, cevabında, aynı edebi değer birçok yerde kullanılıyorsa, yanlışlıkla farklı bir değerle görünebilir - Sabitler tutarlılığı korurlar.

3-Sabitler türünü korurlar, böylece sıfır demek için 0F gibi bir şey kullanmak zorunda kalmazsınız.

4-Okuma kolaylığı için, COBOL, ZERO değerini sıfır değeri için ayrılmış bir sözcük olarak kullanır (ancak değişmez sıfır'ı kullanmanızı da sağlar) - Öyleyse, bir değer vermek bazen yararlı olur, örneğin: (Kaynak: ms-Constants

class CalendarCalc
{
    const int months = 12;
    const int weeks = 52; //This is not the best way to initialize weeks see comment
    const int days = 365;

    const double daysPerWeek = (double) days / (double) weeks;
    const double daysPerMonth = (double) days / (double) months;
}

ya da davanızdaki gibi (@Michael Krussel cevabında gösterildiği gibi)


2
Bu, haftanın günleri için garip bir tanım olmayacak mı? Haftada 7 gün değil 7.4287143
Winston Ewert

@WinstonEwert, yorumunuz için teşekkürler. 365/52 = 7.01923076923077 = 7 + (1/52). Şimdi, kesirli parçayı çıkarır ve 7 * 52 hesaplarsanız, bir yılda doğru gün sayısı olmayan 364 gün elde edersiniz. Kesir almak kaybedilmekten daha hassastır (sonucu yalnızca sayıyı görüntülemek istiyorsanız 7'yi gösterecek şekilde biçimlendirebilirsiniz). Her neyse, bu MS'ten sabitler hakkında sadece bir örnekti, ancak amacınız ilginç.
NoChance

1
Elbette bu sadece bir örnek, ancak ifadenize, kesriyi dahil etmenin daha doğru olduğunu itiraz ediyorum. Bir hafta 7 gün olarak tanımlanır. Tanımınıza bakıldığında 26 hafta 182.5 gündür ki bu doğru değildir. Gerçekten, sorun şu int weeks = 52ki, yılda 52 hafta yok. Yılda 52.142857142857146 hafta var ve bu kesirleri tutmanız gereken sayı. Elbette, bu sabit setin tamamında sabit olan tek şey ay sayısını sabitler.
Winston Ewert

0

Yalnızca karmaşık bir türetme varsa veya sık sık tekrarlanırsa sabit tutmanız gerekir. Aksi takdirde, bir değişmez iyi. Her şeyi sabit bir yere koymak tamamen fazladan bir şeydir.


Yalnızca iki kez sık düşünürseniz ve kodu hiçbir zaman değiştirmeniz gerekmez. İki durumdan birini değiştirerek hata yaratmak gerçekten kolaydır.
BillThor

0

Aslında, belirtildiği gibi, eğer pozisyon değişirse? Yapabileceğiniz / yapmanız gereken şey, dizine güvenmek yerine bir kod kullanmaktır.

Böylece, seçim listenizi oluşturduğunuzda, html gibi biter

<select>
    <option value='CREATE'>Create New Vendor...</option>
    <option value='1'>Existing Vendor</option>
    <option value='2'>Existing Vendor 2</option>
    <option value='3'>Existing Vendor 3</option>
</select>

Ardından selectedIndex === 0, kontrol etmek yerine , değerin CREATECODEsabit olduğunu ve bu test için ve seçim listesini oluştururken kullanılacağını kontrol edin.


3
Muhtemelen iyi bir yaklaşım, ama C # kullanıyormuş gibi görünmesi, html en umut verici örnek kod değil.
Winston Ewert

0

Ondan tamamen kurtulurdum. Açılan kutu listesinin yanına yeni bir düğme oluşturun. Düzenlemek için listedeki bir öğeyi çift tıklayın veya düğmeyi tıklayın. Açılan kutuya gömülü yeni işlevlere sahip değilsiniz. Sonra sihir numarası tamamen silinir.

Genel olarak, koddaki herhangi bir değişmez sayı, sayının çevresine koymak için sabit olarak tanımlanmalıdır. Sıfır ne demek? Bu durumda 0 = NEW_VENDOR. Diğer durumlarda, farklı bir şey anlamına gelebilir, bu yüzden etrafına bir bağlam koymak için okunabilirlik ve bakımın yapılması her zaman iyi bir fikirdir.


0

Diğerlerinin de dediği gibi, verilen bir eyleme karşılık gelen birleşik giriş kutusunu tanımlamak için dizin numarasından başka bir yöntem kullanmalısınız; ya da dizini bazı programatik mantıklarla bulabilir ve değişkende saklayabilirsiniz.

Yazmamın sebebi "hafıza kullanımı" hakkındaki yorumunuzu ele almak. C # 'de, çoğu dilde olduğu gibi, sabitler derleyici tarafından "katlanır". Örneğin, aşağıdaki programı derleyin ve IL'yi inceleyin. Tüm bu numaraların, bilgisayarın hafızasına bakılmaksızın, IL’ye bile girmediğini göreceksiniz:

public class Program
{
    public static int Main()
    {
        const int a = 1000;
        const int b = a + a;
        const int c = b + 42;
        const int d = 7928345;
        return (a + b + c + d) / (-a - b - c - d);
    }
}

sonuçta elde edilen IL:

.method public hidebysig static 
    int32 Main () cil managed 
{
    .maxstack 1
    .locals init (
        [0] int32 CS$1$0000
    )

    IL_0000: nop
    IL_0001: ldc.i4.m1  // the constant value -1 to be returned.
    IL_0002: stloc.0
    IL_0003: br.s IL_0005

    IL_0005: ldloc.0
    IL_0006: ret
}

Bu nedenle, sabit aritmetik kullanarak bir sabit, değişmez veya bir kilobaytlık kod kullanıyorsanız, değer IL'de tam anlamıyla ele alınır.

İlgili bir nokta: Sabit katlama, string değişmezlerine uygulanır. Pek çok kişi, böyle bir çağrının çok fazla gereksiz, etkisiz dize bitiştirmesine neden olduğuna inanıyor:

public class Program
{
    public static int Main()
    {
        const string a = "a";
        const string b = a + a;
        const string c = "C";
        const string d = "Dee";
        return (a + b + c + d).Length;
    }
}

Ancak IL’yi kontrol edin:

IL_0000: nop
IL_0001: ldstr "aaaCDee"
IL_0006: callvirt instance int32 [mscorlib]System.String::get_Length()
IL_000b: stloc.0
IL_000c: br.s IL_000e
IL_000e: ldloc.0
IL_000f: ret

Alt satır: Sabit ifadelerdeki operatörler sabit ifadelerle sonuçlanır ve derleyici tüm hesaplamaları yapar; çalışma zamanı performansını etkilemez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.