Session trong c#

0
3538
session trong c#
session trong c#

Chào các bạn

Có lẻ ai cũng đang thắc mắc là khi mình đăng nhập thì làm sao để lưu lại tên đăng nhập phải không ạ.Hôm nay mình sẽ hướng dẫn các bạn tạo ra session lưu như trên web nhé :

Đây là code ví dụ các bạn có thể tham khảo và sử dụng nhé :

public class Session
    {
        private Dictionary<string, object> _lst = new Dictionary<string, object>();
        private void Add(string key, object value)//tạo mới và chỉnh sửa value 
        {
            if (_lst.ContainsKey(key))//chỗ này là kiểm tra xem có key đó chưa nếu 
                _lst[key] = value;
            else
                _lst.Add(key, value);//còn không có thì mình add vào;
        }
        private object Get(string key)//lấy session theo key
        {
            if (_lst.ContainsKey(key))
                return _lst[key];
            else
                return null;
        }
 
        public object this[string key] { // chỗ này mình sẽ giải thích phía dưới
                  set { Add(key, value); } 
                  get { return Get(key); } 
          }
 
        public void Clear()
        {
            _lst.Clear();//xóa dữ liệu trong list (xóa session)
        }
    }


Và đây là cách sử dụng nhé :

   Session _session = new Session();
   _session["IDUser"]=1;//gán giá trị
   Console.WriteLine(_session["IDUser"]);//in giá trị ra

Bây giờ mình sẽ thích cái đoạn mình comment nhé ý nghĩa của nó như sau:
Cái đó người ta gọi là lập chỉ mục (Indexers) là một tiện ích cho phép mình tạo lớp (class),một cấu trúc(struct) hoặc một interface mà mình có thể truy cập như một mảng .Mình lấy ví dụ cho dễ hiểu nhé :

Mình có 1 Class Temperature đại diện cho nhiệt độ,class này ghi lại nhiệt độ trong 10 điểm khác nhau trong 24h .Class này chứa 1 mảng là Temp ,code như sau :

 Class Temperature
{
    
    private float[] Temp = new float[10] { 56.2F, 56.7F, 56.5F, 56.9F, 58.8F, 
                                            61.3F, 65.9F, 62.1F, 59.2F, 57.5F };


   
    public float this[int index]
    {
        get
        {
            return Temp[index];
        }

        set
        {
            Temp[index] = value;
        }
    }
}
class MainClass
{
    static void Main()
    {
        Temperature _temp = new Temperature();
      
       
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine("Temp #{0} = {1}", i, _temp[i]);
        }

      

    }
}

Cảm ơn các bạn có vấn đề gì thì comment nhé