正如标题所说:)
我一直在等待Wrox发布"专业版Silverlight 2.0"已经很长时间了,但是已经推迟了将近一年,我希望有一个带银光的游戏.
忽略silverlight.net网站,有没有人知道任何好的初学者教程,专注于Visual Studio中的编码而不是Blend?
乔恩
我的构建脚本中有一个目标,它将发送一封带有附件的电子邮件,详细说明模块的svn更改.
如果我硬编码单个电子邮件地址,这是有效的,但我现在想要通过电子邮件发送多个开发人员并且脚本失败.下面是代码
<Target Name="MailInformationUpdate" DependsOnTargets="ZipArtifact" Condition="!Exists('BUILD_IS_PERSONAL')">
<ReadLinesFromFile File="$(BuildDir)\$(recipientListFileName)">
<Output PropertyName="Recipients" TaskParameter="Lines"/>
</ReadLinesFromFile>
<Mail SmtpServer="$(smptServer)"
To="@(Recipients)"
From="$(senderEmail)"
Body="Attached is a list of the changes made since the last release. "
Subject="This module has been updated. You may wish to update." Attachments="$(BuildDir)\Builds\$(svnChangeFileName)"
/>
</Target>
Run Code Online (Sandbox Code Playgroud)
如果我更改收件人行以阅读$(收件人),列表中的第一个人将收到电子邮件,后续地址不会收到电子邮件.
然后我将To行更改为你在@(收件人)下面看到的内容,因为我可能会循环每个收件人.没有这样的运气!我收到错误消息
Emailing "{0}".
<path> error : A recipient must be specified.
Run Code Online (Sandbox Code Playgroud)
我读入的文件只是格式为(emailAddress1),(emailAddress2)等的文本文件
当用户点击ListBoxItem时,我希望它是一个大胆的大字体红色背景黄色
一切都有效,除了背景.似乎所选项目有标准(蓝色)背景.如何覆盖它并将所选背景更改为黄色?
这是代码:
<Window x:Class="AlternateListBox2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
xmlns:local="clr-namespace:AlternateListBox2">
<Window.Resources>
<local:Countries x:Key="countries"/>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Content" Value="{Binding Path=Name}"/>
<Setter Property="Margin" Value="2"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="Background" Value="Yellow"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel>
<ListBox
ItemsSource="{Binding Source={StaticResource countries}}"
Width="100"
Margin="10"
HorizontalAlignment="Left"
/>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud) 我想用继承的pimpl习语.
这是基础公共类及其实现类:
class A
{
public:
A(){pAImpl = new AImpl;};
void foo(){pAImpl->foo();};
private:
AImpl* pAImpl;
};
class AImpl
{
public:
void foo(){/*do something*/};
};
Run Code Online (Sandbox Code Playgroud)
我希望能够使用其实现类创建派生公共类:
class B : public A
{
public:
void bar(){pAImpl->bar();}; // Can't do! pAimpl is A's private.
};
class BImpl : public AImpl
{
public:
void bar(){/*do something else*/};
};
Run Code Online (Sandbox Code Playgroud)
但我不能在B中使用pAimpl,因为它是A的私有.
所以我看到一些解决方法:
我应该选择什么?
我正在寻找一个WPF备忘单,它在WPF中具有绑定,资源和其他常见内容的WPF标记扩展.但到目前为止,我找不到它.
谁知道我能在哪里找到一个?
我一直在将Substance的外观和感觉整合到我的应用程序中,并遇到了几个关于它的内部EDT(事件调度线程)检查例程的问题.Substance绝对拒绝在EDT之外构建UI类.我已经做了很多Swing/AWT,我知道关于EDT的大部分规则.我使用SwingWorker,SwingUtilties.invokeLater来修改组件.我总是认为组件可以在EDT之外构建,但必须在EDT上实现和操作.换句话说,您可以在后台构造和设置默认值,但对pack/setVisible的调用必须是EDT以及操作组件的任何后续调用.
我问的原因是我有一个特别"强大"的窗口来构建,涉及许多小部件,状态和资源(许多图标).以前,我在SwingWorker的背景方法上构建了窗口,并在done方法中使窗口可见.从来没有一个问题.切换到Substance后,内部EDT检查会让我感到困惑.
我已经能够重构代码来解决这个问题.我可以在EDT上构建这不是一个好的解决方案,因为整个应用程序将阻止.我还可以进行更多的重构,并尽力在EDT之外加载所有额外的资源.
把它包装起来...... 构建 Swing/AWT小部件不是在Event Dispatch Thread上安全吗?
应用程序需要一个计数器,该值将存储在文本文件中.有时它会在很短的时间内发生.
此测试代码经常重写文本文件(fe每100毫秒):
int counter = 0;
while (true)
{
WriteToFile(counter);
counter++;
Thread.Sleep(100);
}
private void WriteToFile(int counter)
{
byte[] buffer = Encoding.ASCII.GetBytes(counter.ToString());
using (FileStream createFile = new FileStream("Counter.txt", FileMode.Create))
{
createFile.Write(buffer, 0, buffer.Length);
createFile.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
除了我们的"可靠测试"之外,它的工作基本上都很好 - 在应用程序运行时停止计算机供电.
令人不快的是 - 在文件中没有任何文本(应该是一个数字)但只有一两个空格字符.
它试图写的丢失的最后一个值是可以理解的,但是使文件不一致真的很糟糕......
尝试使用:
createFile.Flush();
createFile.Close();
createFile.Dispose();
GC.Collect();
GC.WaitForPendingFinalizers();
Run Code Online (Sandbox Code Playgroud)
没有帮助.
true.ToString()
false.toString();
Output:
True
False
Run Code Online (Sandbox Code Playgroud)
是否有正当理由认为它是"真实"而非"真实"?在写XML时它会中断,因为XML的布尔类型是小写的,并且与C#的真/假不兼容(虽然不确定CLS).
更新
这是我在C#中解决它的非常hacky方式(用于XML)
internal static string ToXmlString(this bool b)
{
return b.ToString().ToLower();
}
Run Code Online (Sandbox Code Playgroud)
当然,这会给堆栈增加1个方法,但是除去ToLowers().
给定针对EF数据上下文的linq查询:
var customers = data.Customers.Where(c => c.EmailDomain.StartsWith(term))
Run Code Online (Sandbox Code Playgroud)
你希望它能像这样产生SQL,对吗?
SELECT {cols} FROM Customers WHERE EmailDomain LIKE @term+’%’
Run Code Online (Sandbox Code Playgroud)
嗯,实际上,它确实是这样的:
SELECT {cols} FROM Customer WHERE ((CAST(CHARINDEX(@term, EmailDomain) AS int)) = 1)
Run Code Online (Sandbox Code Playgroud)
你知道为什么吗?
另外,将Where选择器替换为:
c => c.EmailDomain.Substring(0, term.Length) == term
Run Code Online (Sandbox Code Playgroud)
它的运行速度提高了10倍,但仍会产生一些非常令人讨厌的SQL.
注意: Linq to SQL正确地将StartsWith转换为Like {term}%,并且nHibernate具有专用的LikeExpression.
我想我理解C#中委托的概念作为方法的指针,但我找不到任何好的例子来说明使用它们的好主意.有哪些例子要么代表更优雅/更好,要么使用其他方法无法解决?
.net ×3
c# ×2
wpf ×2
awt ×1
background ×1
boolean ×1
c++ ×1
delegates ×1
file ×1
inheritance ×1
io ×1
java ×1
listboxitem ×1
msbuild ×1
oop ×1
pimpl-idiom ×1
silverlight ×1
sql ×1
swing ×1
xaml ×1