我今天在Visual Studio 2015中遇到了一些紫色(或紫罗兰色)的下划线,这是我以前从未见过的.
我把光标放在文本上但没有发生任何事情(有时会发生).我用Google搜索,什么也没得到.
这是什么意思?差异类型的下划线如何代表VS中的不同类型的警告?
这里有一些提示: 我后来发现自己在程序运行时编辑源代码.当我停止程序时,下划线消失了.所以我认为它与当前的调试状态有关.
在使用UIElementC#编写UWP程序时,我正在使用从类派生的类,其中我想要包括处理输入控件,如鼠标和键盘操作.现在我看到已经有虚拟方法OnSomeEvent()说明了我可以覆盖这些方法以适应我的处理过程,或者我可以创建处理基类中定义的公共事件的新方法,并在构造函数中将它们订阅到这些输入事件.我认为这两种方法都有效但我希望知道哪种方法更专业或更明智,以及为什么.此外,它有助于解释为什么MS同时提供这两种方式.
这是UIElement类
https://msdn.microsoft.com/en-us/library/system.windows.uielement(v=vs.110).aspx#Examples的事件和方法.
和一段引用
UIElement为元素布局特征提供了一个起点,并且还公开了派生类可以覆盖的虚拟方法,这些方法可以影响元素及其子元素的布局呈现行为.通常,元素的大部分输入和聚焦行为也在UIElement类中定义.这包括键盘,鼠标和手写笔输入的事件以及相关的状态属性.其中许多事件都是路由事件,许多与输入相关的事件都有冒泡路由版本以及事件的隧道版本.这些配对事件通常是控制作者最感兴趣的事件.
我认为使用“ On”作为C#方法的前缀存在很大的困惑。
在MSDN文章“处理和引发事件” https://msdn.microsoft.com/zh-cn/library/edzehd2t(v=vs.110).aspx中,它说:
通常,要引发一个事件,您可以添加一个标记为protected and virtual(在C#中)或Protected and Overridable(在Visual Basic中)的方法。将此方法命名为OnEventName;例如OnDataReceived。该方法应采用一个指定事件数据对象的参数。您提供此方法以使派生类可以重写引发事件的逻辑。派生类应始终调用基类的OnEventName方法,以确保已注册的委托接收事件。
表示On ...方法将引发一个事件。但是,在许多编码示例中,即使Microsoft提供了一些示例,我们也可以看到事件On方法用作事件处理程序,例如此处的https://msdn.microsoft.com/zh-cn/windows/uwp/gaming/tutorial -将移动控件控件添加到您的Directx游戏中?f = 255&MSPPError = -2147217396
首先,让我们填充鼠标和触摸指针事件处理程序。在第一个事件处理程序OnPointerPressed()中,我们从CoreWindow获取指针的xy坐标,当用户单击鼠标或触摸外观控制器区域中的屏幕时,该CoreWindow管理我们的显示。
void MoveLookController::OnPointerPressed(
_In_ CoreWindow^ sender,
_In_ PointerEventArgs^ args)
{
// Get the current pointer position.
uint32 pointerID = args->CurrentPoint->PointerId;
DirectX::XMFLOAT2 position = DirectX::XMFLOAT2( args->CurrentPoint->Position.X, args->CurrentPoint->Position.Y );
auto device = args->CurrentPoint->PointerDevice;
auto deviceType = device->PointerDeviceType;
if ( deviceType == PointerDeviceType::Mouse )
{
// Action, Jump, or Fire
}
// Check if this pointer …Run Code Online (Sandbox Code Playgroud) 我正在编写一个C ++程序,如果满足某些条件,我想删除一些创建的文件。这些文件具有各种文件名,这些文件名在每次迭代中均使用“字符串”类型分配。现在,我正在尝试使用文件名删除某些文件,但是似乎Deletefile函数和remove都无法处理C ++字符串。我也曾尝试将字符串转换为c类型char *,但它不起作用。
我正在Windows 10上使用Visual Studio Community 2015。
他们有解决这个问题的方便方法吗?
FSharp的“删除循环依赖性”中给出了此示例(反示例),以获取乐趣和收益。https://fsharpforfunandprofit.com/posts/removing-cyclic-dependencies/。
type Customer(name, observer:CustomerObserver) =
let mutable name = name
member this.Name
with get() = name
and set(value) =
name <- value
observer.OnNameChanged(this)
and CustomerObserver() =
member this.OnNameChanged(c:Customer) =
printfn "Customer name changed to '%s' " c.Name
Run Code Online (Sandbox Code Playgroud)
见参数observer的Customer类。它不会在类型中声明为字段或属性。之后怎么样了?