设计一个按照Func<List<T>>(rename XxxFunc)模式定义的C#委托， Func接收任何列表作为参数，处理该列表，并返回处理后的列表。在代码中包括一个简单的使用这个委托的例子，演示传入一个处理整数列表的方法。请注意在代码中为所有成员提供注释以使其可见。并通过一个简单的控制台输出进行测试。要求安全地处理空引用和非整数类型的列表导致的异常。

```
// 定义委托，并为之命名
public delegate List<T> ListProcessor<T>(List<T> inputList);

// 示例使用委托
class Program
{
    static void Main(string[] args)
    {
        // 实例化委托，传入处理方法
        ListProcessor<int> processList = ProcessIntegerList;

        // 测试数据
        List<int> testList = new List<int> { 1, 2, 3 };

        try
        {
            // 使用委托进行处理
            List<int> processedList = processList(testList);
            // 输出处理后的列表
            Console.WriteLine("Processed List: " + string.Join(", ", processedList));
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }

    // 定义处理方法
    static List<int> ProcessIntegerList(List<int> integers)
    {
        // 检查输入是否为 null
        if (integers == null)
        {
            throw new ArgumentNullException(nameof(integers), "Input list cannot be null.");
        }

        // 处理列表（此处为简单示例，只是简单地将所有数字加倍）
        List<int> result = integers.Select(i => i * 2).ToList();

        return result;
    }
}
```
user
```
// 定义委托，并为之命名，该委托接受泛型列表作为参数，并返回处理后的列表
public delegate List<T> ListProcessor<T>(List<T> inputList);

// 示例使用委托
class Program
{
    static void Main(string[] args)
    {
        // 实例化委托，传入处理方法
        ListProcessor<int> processList = ProcessIntegerList;

        // 测试数据
        List<int> testList = new List<int> { 1, 2, 3 };

        try
        {
            // 使用委托进行处理
            List<int> processedList = processList(testList);
            // 输出处理后的列表
            Console.WriteLine("Processed List: " + string.Join(", ", processedList));
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }

    // 定义处理方法，该方法接受整数列表，处理后返回处理后的列表
    static List<int> ProcessIntegerList(List<int> integers)
    {
        // 检查输入是否为 null, 如果是则抛出参数空异常
        if (integers == null)
        {
            throw new ArgumentNullException(nameof(integers), "Input list cannot be null.");
        }

        // 处理列表（此处为简单示例，只是简单地将所有数字加倍）
        List<int> result = integers.Select(i => i * 2).ToList();

        return result;
    }
}
```
assistant