gpt4 book ai didi

c# - 通过派生类型调用的静态方法

转载 作者:太空狗 更新时间:2023-10-29 17:47:57 25 4
gpt4 key购买 nike

有一个类,叫做circle。它包含 circleID、circleGeometry 和 circlePath 属性。

public class Circle 
{
public string ID {get; set;}
public EllipseGeometry circleGeometry {get; set;}
public Path circlePath {get; set;}
}

现在,我正在尝试为一个圆设置 ZIndex 值。例如,它将是 2。

Canvas.SetZIndex(someCircleID.circlePath,2);

但我有这样的警告:

"static method invoked via derived type"

谁能解释一下这是什么意思?

最佳答案

SetZIndexPanel 类上定义,Canvas 派生自该类。编译器生成一条警告,说明您正在对子类型使用静态方法。这不是一个实际的问题,但在以某些方式使用时可能会导致混淆。由于 SetZIndex 返回无效,所以这应该不是问题。

但想象一下:

var ftpRequest = (FtpWebRequest) HttpWebRequest.Create("ftp://my.ftp.com");

Create 实际上是 WebRequest 的一个静态方法,但是用在 HttpWebRequest 上,因为它是一个派生类型并且你 < em>可以这样做。所以,您希望它是正在生成的 Web 请求,对吗?但它不是,它生成一个 FtpWebRequest,因为它是在 URI 中指定的。

编辑:

我想指出的是,一般来说,编译器警告的存在是有原因的,这也是这个警告存在的方式。只要没有在 Canvas 类中创建的 SetZIndex 重载,调用就是安全的。但是正如@SriramSakthivel 在评论中指出的那样,如果您或任何其他人,它将不再输出所需的结果,您必须意识到这一点。

关于c# - 通过派生类型调用的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30298053/

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