使用C#三层,写出完整代码
时间: 2024-09-04 07:00:29 浏览: 21
在C#中,三层架构通常指的是将应用程序划分为三个层次:表示层(UI层)、业务逻辑层(BLL层)和数据访问层(DAL层)。每一层都有其特定的职责,这样有助于提高代码的可维护性和可扩展性。以下是使用C#三层架构的一个简单示例:
1. **数据访问层(DAL)**:
```csharp
using System.Collections.Generic;
namespace CSDN三层架构.Dal
{
public interface IDataAccess<T>
{
void Add(T entity);
void Delete(T entity);
IEnumerable<T> GetAll();
void Update(T entity);
}
public class UserDataAccess : IDataAccess<User>
{
private List<User> _users = new List<User>();
public void Add(User entity)
{
_users.Add(entity);
}
public void Delete(User entity)
{
_users.Remove(entity);
}
public IEnumerable<User> GetAll()
{
return _users;
}
public void Update(User entity)
{
var user = _users.Find(u => u.Id == entity.Id);
if (user != null)
{
_users.Remove(user);
_users.Add(entity);
}
}
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
}
```
2. **业务逻辑层(BLL)**:
```csharp
namespace CSDN三层架构.Bll
{
public class UserService
{
private readonly IDataAccess<User> _userDataAccess;
public UserService(IDataAccess<User> userDataAccess)
{
_userDataAccess = userDataAccess;
}
public void CreateUser(User user)
{
_userDataAccess.Add(user);
}
public void DeleteUser(int userId)
{
var user = _userDataAccess.GetAll().FirstOrDefault(u => u.Id == userId);
if (user != null)
{
_userDataAccess.Delete(user);
}
}
public IEnumerable<User> GetAllUsers()
{
return _userDataAccess.GetAll();
}
public void UpdateUser(User user)
{
_userDataAccess.Update(user);
}
}
}
```
3. **表示层(UI层)**:
```csharp
namespace CSDN三层架构.Ui
{
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
IDataAccess<User> userDataAccess = new UserDataAccess();
UserService userService = new UserService(userDataAccess);
// 示例操作
userService.CreateUser(new User { Id = 1, Name = "张三", Email = "zhangsan@example.com" });
userService.CreateUser(new User { Id = 2, Name = "李四", Email = "lisi@example.com" });
var users = userService.GetAllUsers();
foreach (var user in users)
{
Console.WriteLine($"ID: {user.Id}, Name: {user.Name}, Email: {user.Email}");
}
userService.UpdateUser(new User { Id = 1, Name = "张三", Email = "zhangsan_new@example.com" });
userService.DeleteUser(2);
users = userService.GetAllUsers();
foreach (var user in users)
{
Console.WriteLine($"ID: {user.Id}, Name: {user.Name}, Email: {user.Email}");
}
}
}
}
```
请注意,以上代码仅为示例,实际应用中可能需要考虑异常处理、数据验证、依赖注入等更多细节。三层架构并不是固定不变的,它可以根据实际项目需求进行适当的调整。