C# 国家省市县四级菜单
时间: 2024-08-24 22:00:45 浏览: 21
在C#中创建一个国家省市县的四级菜单,可以通过定义几个类来表示这四个层级,并在每个层级中维护其下属层级的数据。以下是一个简化的示例:
首先定义一个抽象类`Region`,作为省、市、县类的基类:
```csharp
public abstract class Region
{
public string Name { get; set; }
public List<Region> SubRegions { get; set; }
public Region(string name)
{
Name = name;
SubRegions = new List<Region>();
}
public virtual void AddSubRegion(Region region)
{
SubRegions.Add(region);
}
}
```
然后分别定义省、市、县三个类继承自`Region`类:
```csharp
public class Province : Region
{
public Province(string name) : base(name) {}
}
public class City : Region
{
public City(string name) : base(name) {}
}
public class County : Region
{
public County(string name) : base(name) {}
}
```
最后,创建一个四级菜单的实例:
```csharp
public class RegionHierarchy
{
public static void Main()
{
// 创建省、市、县的实例并添加子区域
var beijing = new Province("北京");
var shijingshan = new City("石景山");
var shichahai = new County("什刹海");
var chengguan = new County("朝阳");
beijing.AddSubRegion(shijingshan);
shijingshan.AddSubRegion(shichahai);
shijingshan.AddSubRegion(chengguan);
// 打印菜单结构,仅作为示例
PrintRegionTree(beijing, 0);
}
public static void PrintRegionTree(Region region, int level)
{
Console.WriteLine(new string(' ', level * 2) + region.Name);
foreach (var subRegion in region.SubRegions)
{
PrintRegionTree(subRegion, level + 1);
}
}
}
```
在上述代码中,`PrintRegionTree` 方法用于递归打印出省市区的层级结构。它接受一个`Region`对象和一个表示层级的`level`参数,用来决定缩进的大小。