30/09/2018, 16:05

mọi người cho hỏi í nghĩa của kí tự @ trong c# và đoạn code dưới đây

mấy cái chỗ

sBuffer = Regex.Replace(sBuffer, @"(?<number>d+(.d+)?)", " ${number} ");

sBuffer = Regex.Replace(sBuffer, @"(?<ops>[+-*/^()])", " ${ops} ");

mình k hiểu sao lại viết đc như vậy

public void Parse(string Expression)
        {
            output = new Queue();
            ops = new Stack();

            sOriginalExpression = Expression;   

            string sBuffer = Expression.ToLower();
            // captures numbers. Anything like 11 or 22.34 is captured
            sBuffer = Regex.Replace(sBuffer, @"(?<number>d+(.d+)?)", " ${number} ");
            // captures these symbols: + - * / ^ ( )
            sBuffer = Regex.Replace(sBuffer, @"(?<ops>[+-*/^()])", " ${ops} ");
            // captures alphabets. Currently captures the two math constants PI and E,
            // and the 3 basic trigonometry functions, sine, cosine and tangent
            sBuffer = Regex.Replace(sBuffer, "(?<alpha>(pi|e|sin|cos|tan))", " ${alpha} ");
            // trims up consecutive spaces and replace it with just one space
            sBuffer = Regex.Replace(sBuffer, @"s+", " ").Trim();
maivanquan viết 18:18 ngày 30/09/2018

cái này mình cũng ko biết , hóng các pro thôi … . mà bạn dùng cách này để trình bày code lên đây cho dễ nhìn nè , chứ để thế khó nhìn lắm …

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

Phạm Hoàng Tuấn viết 18:15 ngày 30/09/2018

Bạn chạy 2 câu lệnh này sẽ thấy rõ .

    string a = "a\tb";
    string b = @"a\tb";
    Console.WriteLine(a);
    Console.WriteLine(b);

Trong c#, khi xuất ra ta có các ký tự như ‘\n’ là xuống dòng… nhưng khi cho @ đứng trước chuỗi thì \n lại mang giá trị là 1 chuỗi \n
@ : đánh dấu 1 chuỗi sau nó là y nguyên, viết sao xuất ra vậy. (Nhìn ví dụ trên dễ hiểu hơn, khó nói quá).
còn ý ngĩa các Regulare Expresion ở trên có giải thích bằng tiếng anh rồi đó bạn

buithaiminh viết 18:06 ngày 30/09/2018

@ trước một string để biết là giữ nguyên mẫu string đó giống như đã khai báo. Ví dụ 2 cách khai báo chuỗi không có @ và có @ đều in ra cùng 1 kết quả:

string x = "C:\\User\\Minh\\Code\\DayNhauHoc";
string x = @"C:\User\Minh\Code\DayNhauHoc";

// output x:
// C:\User\Minh\Code\DayNhauHoc

string y = "How are you?\nFine, thanks"; // ký tự \n nghĩa là xuống hàng
string y = @"How are you?
Fine, thanks";

// output y:
// How are you?
// Fine, thanks

string z = "My name is:\tBui Thai Minh"; // ký tự \t nghĩa là cách ra 1 tab
string z = @"My name is:   Bui Thai Minh";

// output z:
// My name is:   Bui Thai Minh
Bài liên quan
0