// Cannot change source code
class Base
{
public virtual void Say()
{
Console.WriteLine("Called from Base.");
}
}
// Cannot change source code
class Derived : Base
{
public override void Say()
{
Console.WriteLine("Called from Derived.");
base.Say();
}
}
class SpecialDerived : Derived
{
public override void Say()
{
Console.WriteLine("Called from Special Derived.");
base.Say();
}
}
class Program
{
static void Main(string[] args)
{
SpecialDerived sd = new SpecialDerived();
sd.Say();
}
}
Run Code Online (Sandbox Code Playgroud)
结果是:
来自Special Derived.
来自Derived./*这不是预期的*/
从Base调用.
如何重写SpecialDerived类,以便不调用中产阶级"Derived"的方法?
更新: 我想继承Derived而不是Base的原因是Derived类包含许多其他实现.既然我不能在 …
我有一个UserControl,我需要通知父页面点击了一个按钮UserControl.如何UserControl在主页面上引发事件并将其捕获?我尝试过使用static,很多人建议我去参加活动!
我想要一个仅将enum作为参数的事件.例如
public enum MyEvents{
Event1
}
// how do I declare this to take enum MyEvents as argument
public static event EventHandler EventTriggered;
public static void Trigger(MyEvent event )
{
if (EventTriggered != null)
{
EventTriggered(event);
}
}
Run Code Online (Sandbox Code Playgroud) 不是Google Chrome console.log() inconsistency with objects and arrays的重复,因为这个问题与对象和数组无关。
这是一个简单的 HTML 页面:
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
for (const div of document.querySelectorAll("div")) {
console.log(div);
}
</script>
</body>Run Code Online (Sandbox Code Playgroud)
有时结果会按预期显示:
有时好像我用console.dir()而不是console.log():
很少,我会混合:
当我尝试创建上面所示的最小的、可重现的示例时,我删除了<link>,因为它似乎与问题无关。然而,删除它之后,不一致的情况消失了,所以我恢复了它,并尝试最小化 CSS 本身,直到style.css目前完全为空。因此,不知何故,标签的存在<link>似乎至少与问题有关。
这种行为是否有原因,或者是一个错误?
我最近在W3Schools的 html标签中看到了两个我不太了解的属性.第一个是<table sortable="sortable">属性,第二个是<th sorted="sorted">属性.
根据W3Schools,sortable属性描述是:
指定表应该是可排序的
该sorted属性的描述是:
定义列的排序方向
sorted属性接受的值是:
反转
数字
反转
数字反转
我试着在这里关注如何使用这些属性的W3C文档,但它对我不起作用.
我会非常感谢你的回答.谢谢.
据我了解,本地函数和私有方法都只是作为实现细节——公共方法的助手。为什么我要选择一个而不是另一个?
使用私有方法时,我在对象和方法之间创建了语义关系(虽然从外面看不到),这并不总是合理的。这就是为什么我的第一直觉是本地函数是可行的方法,除非有多个公共方法使用它,在这种情况下我会使用私有方法。
但是,是否有任何客观的理由来支持其中之一?有没有一种情况比另一种更可取的情况?使用其中任何一个的优缺点是什么?
我有一份listView文件清单。我使用以下方法为他们每个人分配了一个图标:
private void SetDocumentIcon(ListViewItem item, FileInfo file)
{
Icon iconForFile = Icon.ExtractAssociatedIcon(file.FullName);
if (!documentsIconsImageList.Images.ContainsKey(file.Extension))
{
iconForFile = Icon.ExtractAssociatedIcon(file.FullName);
documentsIconsImageList.Images.Add(file.Extension, iconForFile);
}
item.ImageKey = file.Extension;
}
Run Code Online (Sandbox Code Playgroud)
我尝试将此方法用于文件夹,但失败了。据我所知,问题在于Icon.ExtractAssociatedIcon文件而不是文件夹。那么如何提取文件夹的图标呢?
谢谢。
这是相当长一段时间,我一直在试图了解背后的想法IEnumerable和IEnumerator.我阅读了网上可以找到的所有问题和答案,特别是StackOverflow,但我并不满意.我明白了我应该如何使用这些接口,但不是为什么这样使用它们.
我认为我误解的本质是我们需要两个接口进行一次操作.我意识到,如果两者都需要,可能还不够.所以我采用了"硬编码"等价物foreach(正如我在这里找到的):
while (enumerator.MoveNext())
{
object item = enumerator.Current;
// logic
}
Run Code Online (Sandbox Code Playgroud)
并试图让它与一个界面一起工作,认为某些事情会出错,这将使我理解为什么需要另一个界面.
所以我创建了一个集合类,并实现了IForeachable:
class Collection : IForeachable
{
private int[] array = { 1, 2, 3, 4, 5 };
private int index = -1;
public int Current => array[index];
public bool MoveNext()
{
if (index < array.Length - 1)
{
index++;
return true;
}
index = -1;
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
并使用foreach …
这是我的代码:
<StackPanel>
<StackPanel.Resources>
<Style x:Key="stlNavButtonBorder" TargetType="Border">
<Setter Property="BorderBrush" Value="#570000FF" />
<Setter Property="BorderThickness" Value="5" />
<Setter Property="Height" Value="100" />
<Setter Property="Width" Value="200" />
<Setter Property="Margin" Value="10" />
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="BorderBrush.Color"
To="blue"
Duration="0:0:0.25"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="BorderBrush.Color"
To="#570000FF"
Duration="0:0:0.25" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseDown">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="BorderBrush.Color"
To="Black"
Duration="0:0:0.25" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
<Style x:Key="stlNavButtonRectangle" TargetType="Rectangle">
<Setter Property="Fill" Value="#570000FF"/>
</Style>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Style="{StaticResource …Run Code Online (Sandbox Code Playgroud) c# ×8
events ×2
c#-6.0 ×1
c#-7.0 ×1
console.log ×1
foreach ×1
html ×1
html-table ×1
ienumerable ×1
ienumerator ×1
javascript ×1
polymorphism ×1
raiseevent ×1
silverlight ×1
wpf ×1
xaml ×1