2. Create a class called **Employee** that includes three pieces of information as data members — a **first name** (type string), a **last name** (type string) and a **monthly salary**(type int).
- Your class should have a **constructor** that initializes the three data members.
- Provide a **set and a get function** for each data member.
- You can write functions. Property is optional.
- If the **monthly salary** is negative, throw a **NegativeNumberException** with Message **“Negative salary is not permitted”** and prompts user to enter a positive salary.
- c# don't have this exception, so you need to create a new exception class.
- ```csharp
class Employee
{
}
public class NegativeNumberException : Exception
{
public NegativeNumberException(string messageValue) : base(messageValue)
{
}
}
```
- **Note that both the constructor and the set function can throw such exception.**
## DEMO
- Write a test program that demonstrates class Employee’s capabilities.
- Create **two** Employee objects, display each object’s **yearly salary**(monthly salary * 12) and cause **NegativeNumberException** to occur, respectively.
- **Test Code Example**
Test code 1:
```csharp
// test constructor
try
{
Employee a = new Employee("Alice", "Chen", 5000);
Employee b = new Employee("Bob", "Lin", -1000);
// will throw error here
Console.WriteLine(12 * a.getSalary());
Console.WriteLine(12 * b.getSalary());
}
catch (... ...)
{
... ...
}
```
Test code 2:
```csharp
// test set function
try
{
Employee a = new Employee("Alice", "Chen", 5000);
Employee b = new Employee("Bob", "Lin", 2000);
Console.WriteLine(12 * a.getSalary());
Console.WriteLine(12 * b.getSalary());
b.setSalary(-1000);
// will throw error here
}
catch (... ...)
{
... ...
}
```