gpt4 book ai didi

c# - 处理未定义抽象方法C#的调用

转载 作者:行者123 更新时间:2023-12-03 08:15:02 27 4
gpt4 key购买 nike

我有一个抽象类,它调用其抽象方法之一:

public abstract class VirtualAsset : ISerializable
{
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
SerializeAsset(info);
}

public abstract void SerializeAsset(SerializationInfo info);
}

问题是,由于我信任用户输入,因此恶意用户(或不知道自己在做什么的用户)极有可能尝试传递VirtualAsset实例,而不是实现所需抽象函数的子类...实际上,当我有目的地执行此操作时,程序崩溃而没有错误。

我尝试使用try-catch无效...有效解决此问题的最佳方法是什么?每次调用可重写方法时,我都必须检查self.GetType()吗?

最佳答案

The problem is, due to the fact that I am trusting user input, it is highly possible that a malicious user (or a user who doesn't know what they are doing) could try to pass in an instance of VirtualAsset



不,不可能。根据定义,不能实例化抽象类。没有人能够创建 VirtualAsset的实例,并且任何不实现abstract方法的派生类也必须是abstract。

关于c# - 处理未定义抽象方法C#的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389734/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com