- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里是StackTrace
的源代码。
public virtual StackFrame GetFrame(int index)
{
if ((frames != null) && (index < m_iNumOfFrames) && (index >= 0))
return frames[index+m_iMethodsToSkip];
return null;
}
public virtual StackFrame [] GetFrames()
{
if (frames == null || m_iNumOfFrames <= 0)
return null;
// We have to return a subset of the array. Unfortunately this
// means we have to allocate a new array and copy over.
StackFrame [] array = new StackFrame[m_iNumOfFrames];
Array.Copy(frames, m_iMethodsToSkip, array, 0, m_iNumOfFrames);
return array;
}
为什么 GetFrames
不只返回 frames
?如果它不希望调用者修改框架,为什么 GetFrame
返回引用而不是复制?
顺便说一下, StackFrame没有修改自身的方法或属性。
最佳答案
Why doesn't
GetFrames
just returnframes
?
嗯,frames
变量是内部存储。因此,作为返回值的接收者,您可以通过设置数组的索引来更改内部存储变量。为了防止这种情况,它将不可变对象(immutable对象)复制到一个新数组(其大小比数组具有的堆栈大小更好)。
此外,正如评论所述:我们必须返回数组的一个子集。因此不会返回整个数组。可以找到一个例子here : DiagnosticTrace
中的所有方法都被过滤掉。
Why does
GetFrame
return the reference instead of copy?
因为框架是不可变的,所以您无法更改它。无需复制,因为它是只读的。
关于c# - 为什么 StackTrace.GetFrames 不直接返回引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44385798/
我正在尝试根据我的 MATLAB 绘图创建一部电影。当我调用 getframe 时,它“通常”捕获绘图图像,但有时如果屏幕上有其他事件(如果我继续使用计算机,这很正常),它会捕获任何事件窗口。有没
我正在训练机器学习算法,并希望制作一个 avi 来可视化随着时间的推移权重的外观。我把类似的东西放在一起: aviobj = avifile( 'weights.avi' ); for jj = 1:
getFrame().setBounds(200, 200, 200, 200) 在 netbeans 中不起作用,原因是什么?我也使用了 getFrame().setTitle() 并且它可以工作,
这里是StackTrace的源代码。 public virtual StackFrame GetFrame(int index) { if ((frames != null) && (inde
如果我只是想执行以下操作以查看是什么调用了我, var st = new StackTrace(); var callingMethod = st.GetFrame(1).GetMethod() 只购
本文整理了Java中com.facebook.presto.sql.tree.Window.getFrame()方法的一些代码示例,展示了Window.getFrame()的具体用法。这些代码示例主要
我有成千上万的电影剪辑需要在 Imagick 中逐帧处理。我目前正在使用 ffmpeg-php 获取帧并通过 Imagick 处理每个帧。 Imagick 不能(至少我不知道如何)直接访问帧,所以我必
我是一名优秀的程序员,十分优秀!