iT邦幫忙

0

【C#學習筆記】13《命名規則速查表》

  • 分享至 

  • xImage
  •  

【C++學習筆記】02《從資料型態到命名規則》 中,我們有提到C++的命名規則,下面將整理C#的命名規則速查表供大家參考。(僅供參考,並非所有專案通用)


【C#學習筆記】12《類別(Class)》巢狀類別、主要建構子、this & base


類型 命名方式 範例
Class PascalCase PlayerHealth
Method PascalCase TakeDamage()
Property PascalCase CurrentHealth
Interface I + PascalCase IDamageable
Enum PascalCase WeaponType
Enum 成員 PascalCase Sword
Private Field _camelCase _currentHealth
Local Variable camelCase damage
Parameter camelCase damage
Constant PascalCase MaxHealth
Event On + PascalCase OnDead

程式碼範例

using System;

namespace Gameplay
{
    // Interface
    public interface IDamageable
    {
        void TakeDamage(int damage);
    }

    // Enum
    public enum WeaponType
    {
        Sword,
        Bow,
        Staff
    }

    // Class
    public class PlayerHealth : IDamageable
    {
        // Constant
        public const int MaxLevel = 100;

        // Static Readonly
        public static readonly string GameVersion = "1.0.0";

        // Private Fields
        private int _maxHealth;
        private int _currentHealth;
        private bool _isDead;

        // Properties
        public int MaxHealth => _maxHealth;
        public int CurrentHealth => _currentHealth;
        public bool IsDead => _isDead;

        // Event
        public event Action OnDead;

        // Constructor
        public PlayerHealth(int maxHealth)
        {
            _maxHealth = maxHealth;
            _currentHealth = maxHealth;
        }

        // Method
        public void TakeDamage(int damage)
        {
            if (_isDead)
                return;

            _currentHealth -= damage;

            if (_currentHealth <= 0)
            {
                _currentHealth = 0;
                _isDead = true;

                OnDead?.Invoke();
            }
        }

        public void Heal(int amount)
        {
            if (_isDead)
                return;

            _currentHealth += amount;

            if (_currentHealth > _maxHealth)
            {
                _currentHealth = _maxHealth;
            }
        }

        public void ShowStatus()
        {
            Console.WriteLine(
                $"HP: {_currentHealth}/{_maxHealth}, Dead: {_isDead}");
        }
    }

    class Program
    {
        static void Main()
        {
            // Local Variable
            PlayerHealth playerHealth = new PlayerHealth(100);

            // Event Subscription
            playerHealth.OnDead += HandlePlayerDead;

            playerHealth.ShowStatus();

            playerHealth.TakeDamage(30);
            playerHealth.ShowStatus();

            playerHealth.TakeDamage(80);
            playerHealth.ShowStatus();

            Console.WriteLine($"Version: {PlayerHealth.GameVersion}");
            Console.WriteLine($"Max Level: {PlayerHealth.MaxLevel}");
        }

        private static void HandlePlayerDead()
        {
            Console.WriteLine("Player Dead!");
        }
    }
}

補充:PascalCase & camelCase

在程式設計中,PascalCase&camelCase最常見的兩種變數與元件命名風格。它們的核心目的都是為了提高程式碼的可讀性,避免所有字母擠在一起難以辨識。

PascalCase

規則:所有單字的首字母都必須大寫。
視覺特徵:每個單字的起伏就像山峰一樣。
C# 常見應用:類別(Class)、方法(Method)、屬性(Property)、常數(Constant)。
範例:
PlayerHealth
TakeDamage
MaxLevel

camelCase

規則:第一個單字的首字母小寫,從第二個單字開始的首字母大寫。
視覺特徵:開頭平坦,中間隆起,就像駱駝的駝峰一樣。
C# 常見應用:區域變數(Local Variable)、方法參數(Parameter)。
範例:
playerHealth
damageAmount
isDead

遵守大部分通用的命名規範,程式碼的可讀性真的會大幅提升。寫這篇速查表留個紀錄,讓自己在熟悉前可以隨時回來複查。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言