0Pricing
C# Academy · บทเรียน

กรณีที่ควรหลีกเลี่ยง var

ทำให้โค้ดอ่านง่ายด้วยการระบุชนิดข้อมูลอย่างชัดเจนเมื่อจำเป็น

กรณีที่ควรหลีกเลี่ยง var เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

การอนุมานชนิดตัวแปรอาจซ่อนชนิดไว้

var สะดวก แต่สามารถบดบังชนิดที่แท้จริงของตัวแปร ทำให้ผู้อ่านคนถัดไปอ่านโค้ดได้ยากขึ้น

using System;

class Program {
    static void Main() {
        var x = Compute();
        Console.WriteLine(x);
    }
    static int Compute() { return 42; }
}

ผลลัพธ์เมธอดที่ไม่ชัดเจน

เมื่อชื่อเมธอดไม่เปิดเผยชนิดผลลัพธ์ ให้เลือกใช้ชนิดที่ระบุอย่างชัดเจน เพื่อให้ผู้อ่านทราบว่าค่าที่ได้รับมีชนิดใด

using System;

class Program {
    static double Process() { return 3.14; }
    static void Main() {
        double value = Process();
        Console.WriteLine(value);
    }
}

ความประหลาดใจเกี่ยวกับชนิดตัวเลข

var sum = 0 เป็น int หากคุณคาดว่าจะได้ double เรื่องนี้อาจทำให้เกิดข้อผิดพลาดจากการหารจำนวนเต็ม

using System;

class Program {
    static void Main() {
        double sum = 0;
        sum += 7 / 2.0;
        Console.WriteLine(sum);
    }
}

ระบุชนิดอย่างชัดเจนสำหรับอินเทอร์เฟซ

หากต้องการเขียนโปรแกรมโดยอิงกับอินเทอร์เฟซ ให้ประกาศอินเทอร์เฟซนั้นอย่างชัดเจน เพราะ var จะเลือกชนิดรูปธรรมแทน

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        IList<int> items = new List<int> { 1, 2 };
        Console.WriteLine(items.Count);
    }
}

ค่ากำหนดเริ่มต้นที่อยู่ไกล

เมื่อค่ากำหนดเริ่มต้นเป็นนิพจน์ยาวหรือนิพจน์ซ้อนกันหลายชั้น การระบุชนิดอย่างชัดเจนจะสื่อเจตนาได้ดีกว่า var

using System;

class Program {
    static void Main() {
        int finalScore = (10 + 5) * 2 - 3;
        Console.WriteLine(finalScore);
    }
}

หลีกเลี่ยงเพื่อให้ชนิดพื้นฐานชัดเจน

หลายทีมเขียนชนิดพื้นฐานอย่างชัดเจนสำหรับชนิดข้อมูลพื้นฐานที่เรียบง่าย เพื่อให้เห็นชนิดตัวเลขที่ต้องการอย่างแน่นอน

using System;

class Program {
    static void Main() {
        long bigCount = 5000000000;
        Console.WriteLine(bigCount);
    }
}

var ใช้เป็นฟิลด์ไม่ได้

var ใช้ได้เฉพาะกับตัวแปรภายในเท่านั้น ฟิลด์ พารามิเตอร์ และชนิดผลลัพธ์ต้องระบุอย่างชัดเจนเสมอ

using System;

class Program {
    static int field = 100;
    static void Main() {
        Console.WriteLine(field);
    }
}

การอนุมานชนิดตัวเลขแบบผสม

โปรดระวัง: var avg = total / count ที่ใช้ int สองตัวจะยังคงเป็น int ทำให้เจตนาไม่ชัดเจนเมื่อคุณต้องการค่าทศนิยม

using System;

class Program {
    static void Main() {
        int total = 7, count = 2;
        double avg = (double)total / count;
        Console.WriteLine(avg);
    }
}

เมื่อแนวทางรูปแบบแตกต่างกัน

แนวทางบางแห่งแนะนำให้ใช้การอนุมานชนิดตัวแปรเฉพาะเมื่อชนิดเห็นได้ชัดจากด้านขวา การปฏิบัติตามกฎที่สม่ำเสมอช่วยทั้งทีมได้

using System;

class Program {
    static void Main() {
        var customer = new string("Ann"[0], 3);
        Console.WriteLine(customer);
    }
}

สร้างสมดุลระหว่างความสะดวกและความชัดเจน

เป้าหมายคือโค้ดที่อ่านง่าย ใช้ var เมื่อช่วยให้โค้ดดีขึ้น และใช้ชนิดที่ระบุอย่างชัดเจนเมื่อช่วยให้เข้าใจได้ง่าย

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var lookup = new Dictionary<int, string>();
        int key = 1;
        lookup[key] = "one";
        Console.WriteLine(lookup[1]);
    }
}

กฎง่าย ๆ ที่ใช้ได้จริง

หากอ่านเพียงบรรทัดเดียวแล้วไม่สามารถบอกชนิดได้ ให้เขียนชนิดนั้นออกมา มิฉะนั้นใช้ var ได้

using System;

class Program {
    static void Main() {
        var greeting = "Hello";
        decimal price = 19.99m;
        Console.WriteLine(greeting + " " + price);
    }
}

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบการตัดสินใจของคุณว่าเมื่อใดควรหลีกเลี่ยงการอนุมานชนิดตัวแปร

สรุปทบทวน

หลีกเลี่ยง var เมื่อทำให้ชนิดสำคัญถูกซ่อนไว้ เมื่อชนิดตัวเลขมีความสำคัญ (int เทียบกับ double) เมื่อต้องการกำหนดเป้าหมายเป็นอินเทอร์เฟซ หรือเมื่อชื่อเมธอดไม่เปิดเผยชนิดผลลัพธ์

var ใช้ได้เฉพาะกับตัวแปรภายในเท่านั้น กฎที่ดีคือ หากดูจากบรรทัดเดียวแล้วยังไม่เห็นชนิด ให้เขียนชนิดนั้นอย่างชัดเจน

คำถามที่พบบ่อย

บทเรียน “กรณีที่ควรหลีกเลี่ยง var” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กรณีที่ควรหลีกเลี่ยง var” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กรณีที่ควรหลีกเลี่ยง var”

ทำให้โค้ดอ่านง่ายด้วยการระบุชนิดข้อมูลอย่างชัดเจนเมื่อจำเป็น คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “กรณีที่ควรหลีกเลี่ยง var” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การอนุมานชนิดตัวแปรภายในด้วย var
  2. กรณีที่ควรหลีกเลี่ยง var
  3. ชนิด dynamic
  4. นิพจน์ new ที่อนุมานชนิดจากเป้าหมาย
← กลับไปที่ C# Academy