using System;
class Program
{
static void UpdateValue(int x) { x = 100; }
static void UpdateArray(int[] arr) { arr[0] = 100; }
static void UpdateString(string s) { s = "changed"; }
static void Main()
{
int num = 1;
int[] nums = { 1, 2, 3 };
string str = "original";
UpdateValue(num);
UpdateArray(nums);
UpdateString(str);
Console.WriteLine($"num: {num}");
Console.WriteLine($"nums[0]: {nums[0]}");
Console.WriteLine($"str: {str}");
}
}`
**答案:**
```C#
num: 1
nums[0]: 100
str: original
原因:
num
是值類(lèi)型,傳遞的是副本,方法內修改不影響原變量nums
是引用類(lèi)型,傳遞的是引用,方法內修改會(huì )影響原數組string
雖然是引用類(lèi)型,但具有不可變性,方法內重新賦值會(huì )創(chuàng )建新對象,不影響原變量相同點(diǎn):
不同點(diǎn):
方式1:Props和Events
方式2:Provide/Inject
方式3:Vuex/Pinia狀態(tài)管理
| Id | Name | Age | Salary | |----|------|-----|--------| | 1 | yzk | 80 | 1000 | | 2 | yzk | 80 | 2000 | | 3 | tom | 20 | 20000 | | 4 | tom | 20 | 20000 | | 5 | im | 20 | 20000 |
DELETE FROM table_name
WHERE Id NOT IN (
SELECT MAX(Id)
FROM table_name
GROUP BY name, age
);
執行結果:
| Id | Name | Age | Salary | |----|------|-----|--------| |2 |yzk | 80 |2000 | |4 | tom | 20 |20000 | |5 | im | 20 |20000 |
?Employees? (員工表) 字段:EmployeeID (主鍵), Name, DepartmentID ?Departments? (部門(mén)表): 字段:DepartmentID (主鍵), DepartmentName ?Salaries? (薪資表) 字段:SalaryID (主鍵), EmployeeID, SalaryAmount, YearMonth 請編寫(xiě)sql語(yǔ)句找出當月薪資高于所在部門(mén)平均薪資的員工名單(顯示員工姓名、部門(mén)名稱(chēng)和薪資)
SELECT e.Name AS 員工姓名,
d.DepartmentName AS 部門(mén)名稱(chēng),
s.SalaryAmount AS 薪資
FROM Employees e
INNER JOIN Departments d ON e.DepartmentID = d.DepartmentID
INNER JOIN Salaries s ON e.EmployeeID = s.EmployeeID
INNER JOIN (
SELECT DepartmentID,
AVG(SalaryAmount) AS AvgSalary
FROM Employees e2
INNER JOIN Salaries s2 ON e2.EmployeeID = s2.EmployeeID
WHERE s2.YearMonth = FORMAT(GETDATE(), 'yyyyMM')
GROUP BY DepartmentID
) dept_avg ON d.DepartmentID = dept_avg.DepartmentID
WHERE s.YearMonth = FORMAT(GETDATE(), 'yyyyMM')
AND s.SalaryAmount > dept_avg.AvgSalary;
說(shuō)明: