Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 20 kết quả

Đề tài: Tất cả các kiểu convert trong C#

  1. #1
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Tất cả các kiểu convert trong C#

    Hihih...
    Lấy phong độ trở lại
    Đầu tư cho tương lai.

    + Tự nhiên thấy cái này cũng quan trọng không kém trong khi lập trình.

    Các kiểu dữ liệu chính trong C# <ý là hay dùng> : char _ short _ integer _ double _ string _ bool

    ...Em có câu hỏi : các anh cho em biết cách convert chuyển đổi giữa các kiểu nhé ^^!
    None!

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    18

    hình như là cấu trúc thế này thì phải T_T :
    Mới xem qua C# một lần rùi định học nhưng không có thời gian T_T:
    vd:
    Code:
    int Integers;
    string baby;
    baby = (string)Integers;
    Giả dụ thế thui chứ thực ra gán trực tiếp cũng được T_T
    Hình như còn chuyển được cả mấy kiểu nữa sang các kiểu khác nhau T_T

  3. #3
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi pete_87 Xem bài viết
    Hihih...
    Lấy phong độ trở lại
    Đầu tư cho tương lai.

    + Tự nhiên thấy cái này cũng quan trọng không kém trong khi lập trình.

    Các kiểu dữ liệu chính trong C# <ý là hay dùng> : char _ short _ integer _ double _ string _ bool

    ...Em có câu hỏi : các anh cho em biết cách convert chuyển đổi giữa các kiểu nhé ^^!
    Trong C# có 2 kiểu chuyển đổi:
    1.Chuyển đổi ngầm định
    Code:
    short x=5;
    int y=x; // chuyển đổi ngầm
    Câu lệnh ở trên tương đương:
    Code:
    short x=5;
    int y = (int) x;
    Tuy nhiên, nếu bạn chuyển đổi theo chiều ngược lại, chắc chắn là bạn sẽ mất thông tin. Nếu trị biến kiểu int lớn hơn 32 767, nó sẽ bị xén đi. Compiler sẽ không thi hành một chuyển đổi ngầm định từ int qua short. Có thể hiểu đơn giản là không thể lấy "ngắn chứa dài" (int > short)
    Code:
    short x;
    int y=500;
    x = y ; // không chịu biên dịch
    Bạn phải cho ép kiểu một cách rõ ràng ra, nếu bạn chắc cú là không mất thông tin
    [code
    short x;
    int y = 500;
    x = (short)y // OK, bây giờ chịu biên dịch rồi đấy!
    [/code]
    Sau đây cho thấy các chuyển đổi ngầm mà "cô nàng" C# chịu hỗ trợ:
    TỪ kiểu dữ liệu này... Qua kiểu dữ liệu....
    sbyte --> short,int,long,float,double,decimal
    byte --> short,ushort,int,uint,long,ulong,float,double,deci mal
    short ->int,long,float,double,decimal
    ushort-->int,uint,long,ulong,float,double,decimal
    int-->long,float,double,decimal
    uint-->long,ulong,float,double,decimal
    long,ulong-->float,double,decimal
    float-->double
    char-->ushort,int,uint,long,ulong,float,double,decimal

    2.Chuyển đổi tường minh
    Tuy nhiên, vẫn có những chuyển đổi ngầm không thể thực hiện được và trình biên dịch sẽ thông báo sai lầm nếu bạn cố tình vi phạm. Sau đây là 1 số chuyển đổi ngầm không thực hiện được:
    int --> short
    int -->uint
    uint-->int
    float-->int : sẽ mất dữ liệu sau dấu thập phân
    decimal --> qua bất cứ kiểu dữ liệu số
    Tuy nhiên, ta có thể chuyển đổi bằng cách ép kiểu. Khi ta ép 1 kiểu dữ liệu này qua kiểu dữ liệu khác, ta cố tình ép compiler phải tuân theo. Cú pháp như sau:
    Code:
    short x;
    int y=555;
    x= (short) y; // OK, nhưng số tối đa là 32 767
    Việc chuyển đổi tường mình, sử dụng ép kiểu có thể là nguy hiểm nếu bạn không biết bạn đang làm gì. Ví dụ, nếu từ long-->int có thể gây nguy hiểm nếu trị ban đầu của long lớn hơn trị tối đa của int. Ví dụ:
    Code:
    long val=1000000000000000;
    int i = (int) val; // Sai be bét vì int có trị tối đa là 2147483647
    Trong trường hợp này, bạn sẽ nhận: -1294967296, không phải là số mà bạn mong muốn.

  4. #4
    No Avatar
    [Mr.Pete] Khách

    Cho thêm chi tiết về cách sử dụng các Class hay Method cho convert đi đại ca Danh

    + ToString()
    + Convert
    + Converter<>
    .....

  5. #5
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi [Mr.Pete] Xem bài viết
    Cho thêm chi tiết về cách sử dụng các Class hay Method cho convert đi đại ca Danh

    + ToString()
    + Convert
    + Converter<>
    .....
    1.ToString()
    Đây có lẽ là phương thức đáng yêu nhất đối với tớ, vì nó giúp chuyển đổi mọi thứ thành chuỗi. Vì C# coi mọi thứ như các đối tượng, và trong các đối tượng đều có các phương thức của riêng nó, nhưng dù là đối tượng nào đi chăng nữa, đều có phương thức ToString(). Có điều mọi người nên biết là trong C#, có 1 lớp trùm (gọi là đại ca của mọi đại ca các lớp), lớp này có tên là Object, tất cả mọi class trong C# đều kế thừa từ lớp Object này. Cụ thể ở đây là thừa kế phương thức ToString().
    Cách sử dụng: đơn giản như đang giỡn
    Code:
    int x = 5321;
    string s = x.ToString();
    Kết quả là ta có chuỗi "5321". Đơn giản quá phải không? Không cần phải bàn thêm về ToString() nữa
    2.Convert
    Ặc, không dám bàn luận, lớp này cũng hơi to, cụ thể là nó giúp chúng ta chuyển đổi qua lại giữa các kiểu dữ liệu: Boolean, Char, SByte, Byte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, Decimal, DateTime và String.
    Tớ chỉ dám cho vài ví dụ để minh họa:
    Code:
    double db_value = 23.15;
    int int_value = Convert.ToInt32(db_value); // return value:23
    bool bNumber = Convert.ToBoolean(db_value); // return value:true
    string sValue = Convert.ToString(db_value); //return value: "23.15"
    Cậu nên tham khảo MSDN để biết thêm chi tiết.

  6. #6
    Ngày gia nhập
    04 2007
    Bài viết
    17

    Mặc định Tất cả các kiểu convert trong C#

    Tôi thì khoái dùng cái kiểu sau để Convert sang string,Nhưng ko biết nó là ngầm định hay tường minh nhỉ :-?? :
    int x=5;
    string s=""+x;

  7. #7
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi xtrung Xem bài viết
    Tôi thì khoái dùng cái kiểu sau để Convert sang string,Nhưng ko biết nó là ngầm định hay tường minh nhỉ :-?? :
    int x=5;
    string s=""+x;
    Hi hi,cậu thử sửa đoạn code trên thành:
    Code:
    int x=5;
    string s= x;
    Để xem Compiler có chịu biên dịch hay không?
    Và cậu thử so sánh 2 cách này:
    Code:
    int x= 5;
    string s = (string) x;

    Code:
    int x=5;
    string s = x.ToString();
    Cứ thử đi nhé, cho tớ biết kết quả, rồi tớ sẽ trả lời cậu )

  8. #8
    Ngày gia nhập
    04 2007
    Bài viết
    17

    int x=5;
    string s= x;
    Ko chạy.
    int x= 5;
    string s = (string) x;
    Ko chạy.
    int x=5;
    string s = x.ToString();
    chạy.
    Trả lời đi

  9. #9
    Ngày gia nhập
    04 2007
    Bài viết
    17

    Bạn hỏi thì mình trả lời,tại sao mình hỏi bạn lại hỏi lại mình.Mình hy vọng 1 câu trả lời chứ ko phải hỏi lại.
    OK. Giờ mình trả lời bạn rồi thế mình hỏi bạn:
    ""+x và x.ToString();
    tại sao mình lại thích dùng cách đầu tiên,Có gì khác nhau ko??

  10. #10
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi xtrung Xem bài viết
    Tôi thì khoái dùng cái kiểu sau để Convert sang string,Nhưng ko biết nó là ngầm định hay tường minh nhỉ :-?? :
    int x=5;
    string s=""+x;
    Kiểu này là ngầm định, bởi vì với đoạn code trên, mình có thể ghi tường minh như sau:
    Code:
    int x=5;
    string s = "" +x.ToString();
    À quên, tớ biết cậu cũng cừ lắm, cậu có thể nêu nhận định của cậu về cách chuyển đổi này để mình và mọi người được học hỏi . Thật sự, trước khi cậu post cách này lên,tớ chưa hề nghĩ đến, bình thường mình dùng phương thức ToString() để chuyển cho code dễ đọc.

Các đề tài tương tự

  1. Làm sao để convert HTML trong iOS ???
    Gửi bởi Shjv4 trong diễn đàn Thắc mắc lập trình Objective-C
    Trả lời: 5
    Bài viết cuối: 05-09-2013, 07:52 AM
  2. Lỗi convert từ * qua char [20].(Hoặc lỗi convert các kiểu)Mình rất hay bị lỗi này
    Gửi bởi kuhoang0512 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 5
    Bài viết cuối: 07-11-2011, 08:20 PM
  3. Lỗi: cannot convert 'int *' to 'int' trong C?
    Gửi bởi hanhsl trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 27-02-2011, 02:32 PM
  4. Lỗi Cannot implicitly convert type khi Convert Array to List trong WCF ???
    Gửi bởi dangbk trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 26-09-2010, 05:43 PM
  5. Convert string -> mảng int trong C#?
    Gửi bởi taka_12x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 03-06-2010, 10:14 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn