![]() |
|
|
Thread Tools |
|
#1
|
|||
|
|||
|
[Hỏi] dùng equals trong linq
Em mới học về C# và linq, có trường hợp này em muốn hỏi các bác:
Quote:
Em muốn join 2 bảng này với nhau bằng linq bằng từ khóa join chứ không dùng cross join 2 bảng nên viết như sau: Quote:
Quote:
__________________
[QUOTE=FarmerTo6Dai18;89294878]Gẩy gẩy cờ him là 1 nghi thức chứ đ' đơn giản là vẩy cho hết nước thừa đâu. Mỗi lần đi tè xong là m phải vẩy vẩy đầu để chào thổ địa, nhìn mấy đứa con gái xem, đi tè xong đéo chào thổ địa nên tháng nào cũng bị ổng vật cho máu me đầm đìa :doubt:[/QUOTE] |
| toi_yeu_quyen |
| View Public Profile |
| Find all posts by toi_yeu_quyen |
|
#2
|
|||
|
|||
|
Re: [Hỏi] dùng equals trong linq
Quote:
Code:
public class Address
{
public string Street { get; set; }
public override bool Equals(object obj)
{
// Compare property, if matches, so object is equal
return ((Address)obj).Street == this.Street;
}
public string GetHashCode()
{
// Hash code must be equal between two objects
return this.Street.GetHashCode();
}
}
![]()
|
| dreamnight |
| View Public Profile |
| Find all posts by dreamnight |
|
#3
|
|||
|
|||
|
Re: [Hỏi] dùng equals trong linq
Quote:
Quote:
Code:
Class A
{
public delegate void OnExecute(int a);
public void Execute()
{
int b = 10;
if(OnExecute != null) OnExecute(b);
}
}
Class B
{
public void OnExecute(int a)
{
Console.Writeline("Hello {0}", a);
}
}
Class Main
{
public void Start()
{
A a = new A();
a.OnExecute = (new B()).OnExecute
a.Execute();
}
}
// output: 10
Nói chung đó là khái niệm cơ bản nhất của delegate, còn thực tế sử dụng thì rất nhiều case nữa. |
| dreamnight |
| View Public Profile |
| Find all posts by dreamnight |
|
#4
|
||
|
||
|
Re: [Hỏi] dùng equals trong linq
thím dreamnight giải thích việc so sánh C# anonymous type là chuẩn xác và cô đọng rồi.
còn về delegate, nếu search gg thì hay đc gọi là "con trỏ hàm", bạn có thể hiểu nó là 1 kiểu định nghĩa dữ liệu để lưu trữ và trao đổi thông tin về "hàm" (function), rồi sau đó sử dụng cho các thành phần khác. Hàm cũng có thể được lưu trữ, trao đổi và truyền đi như những dữ liệu khác (int, string, object...). Các thành phần khác muốn sử dụng delegate thì chỉ cần biết input type/ouput type của delegate, giống như biết 1 hàm có đầu vào là 2 số nguyên, đầu ra là 1 số nguyên, ko cần biết bên trong định nghĩa hàm là gì. Biết được kiểu đầu vào/đầu ra là có thể trao đổi hoặc sử dụng hàm đó. 1 hàm truyền vào 1 hàm khác, VD trong toán học, f(g(x)), trong thực tế đôi khi chả cần biết hàm g() bên trong nó làm cái gì, chỉ cần biết nó có đầu vào kiểu gì và đầu ra kiểu gì, thế thì người ta thiết kế ra 1 kiểu dữ liệu để truyền định nghĩa hàm g() đó vào trong hàm f(), sử dụng cái thông tin về hàm g() đấy để là phần tử trong phép tính của hàm f().
__________________
[QUOTE]Làm thế nào để phân biệt giữa cái đúng sai và cái mình thích?[/QUOTE] |
|
#5
|
|||
|
|||
|
Re: [Hỏi] dùng equals trong linq
Cảm ơn các bác cái linq em hiểu rõ rồi còn cái delegate chắc em phải tìm hiểu thêm về nó vậy, đọc xong em vẫn chưa hiểu lắm, delegate có cách viết tương ứng nào trong java không các bác nhỉ?
__________________
[QUOTE=FarmerTo6Dai18;89294878]Gẩy gẩy cờ him là 1 nghi thức chứ đ' đơn giản là vẩy cho hết nước thừa đâu. Mỗi lần đi tè xong là m phải vẩy vẩy đầu để chào thổ địa, nhìn mấy đứa con gái xem, đi tè xong đéo chào thổ địa nên tháng nào cũng bị ổng vật cho máu me đầm đìa :doubt:[/QUOTE] |
| toi_yeu_quyen |
| View Public Profile |
| Find all posts by toi_yeu_quyen |
|
#6
|
|||
|
|||
|
Re: [Hỏi] dùng equals trong linq
Quote:
|
| dreamnight |
| View Public Profile |
| Find all posts by dreamnight |
|
#7
|
||
|
||
|
Re: [Hỏi] dùng equals trong linq
Đơn giản thì cứ coi delegate là từ khóa để định nghĩa 1 kiểu dữ liệu đi.
Định nghĩa kiểu dữ liệu A. Code:
class A{}
Định nghĩa kiểu dữ liệu B (chấp nhận bất cứ hàm nào có kiểu trả về là void và ko có tham số). Code:
delegate void B(); Code:
A a; B b; Code:
a= new A(); Code:
b= delegate(){};
// hoặc
b= ()=>{};
// hoặc
void function(){}
b= function;
|
![]() |
|
|