当我在Intellij中键入以下代码时,它会突出显示匹配中的x,并显示警告"可变模式的可疑阴影"
val x = "some value"
"test" match {
case x =>
}
Run Code Online (Sandbox Code Playgroud)
它建议我将其更改为:
val x = "some value"
"test" match {
case `x` => //note backticks
}
Run Code Online (Sandbox Code Playgroud)
什么是可疑阴影以及反对做什么?!
基本上,Intellij通过强调我的许多代码使我的代码非常难以阅读.它有点像我的屏幕左侧的棋盘!=>
我查看了代码编辑器设置,但是我无法在scala下找到一个控制这些下划线的设置.我正在使用暮光之城主题,但我刚才注意到了这个问题.任何想法Intellij增益?
我一直在阅读通过蛋糕模式在scala中执行依赖注入.我想我明白了,但我一定错过了一些东西,因为我仍然看不到它的重点!为什么通过自我类型而不仅仅是抽象字段来声明依赖性更好?
鉴于编程中 的示例,ScalaTwitterClientComponent
使用cake模式声明了这样的依赖关系:
//other trait declarations elided for clarity
...
trait TwitterClientComponent {
self: TwitterClientUIComponent with
TwitterLocalCacheComponent with
TwitterServiceComponent =>
val client: TwitterClient
class TwitterClient(val user: TwitterUserProfile) extends Tweeter {
def tweet(msg: String) = {
val twt = new Tweet(user, msg, new Date)
if (service.sendTweet(twt)) {
localCache.saveTweet(twt)
ui.showTweet(twt)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这比将依赖关系声明为抽象字段更好吗?
trait TwitterClient(val user: TwitterUserProfile) extends Tweeter {
//abstract fields instead of cake pattern self types
val service: TwitterService
val localCache: TwitterLocalCache …
Run Code Online (Sandbox Code Playgroud) 我最近从Vista/32升级到Win7/64.在我的旧机器上,一切正常.
不幸的是,在我的新机器上,NUnit不会加载我的单元测试,错误消息"System.IO.FileNotFoundException:无法加载文件或程序集'UnitTest'或其依赖项之一.系统无法找到指定的文件".(实际上,我必须完成我所有解决方案的项目,并将它们设置为32位才能实现这一目标.)
所以我加载了Dependency Walker,它告诉我我错过了IESHIMS.DLL.我在我的机器上发现了两个,所以我从Internet Explorer目录中复制了32位版本,DW停止抱怨该文件.
但是,它也缺少GPSVC.DLL.我在C:\ Windows\System32中只发现了一个这样的副本,但当我将其复制到我的单元测试目录中时,DW抱怨它是64位,而NUnit仍然无法运行.它现在还将SYSNTFY.DLL添加到缺少的列表中.我只有其中一个,那也是64位.NUnit仍然报告错误.
那么我应该废弃这个64位操作系统并回到原来的32位,还是我错过了一些明显的东西?
这有点像WPF whodunnit!我的验证寺庙在预期时没有出现
问题
基本上,我在我的视图模型上使用IDataErrorInfo来提供有关数据输入错误的反馈.我可以看到这被调用并按预期工作,但WPF从不显示绑定控件的验证错误模板!
我已尝试使用内置的默认文本框红色边框错误模板,样式错误模板和硬编码模板.这些都不会在数据错误情况下显示.
继承我的xaml绑定代码:
<TextBox x:Name="txtCaseNumber"
Text="{Binding Path=CaseNumber, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>
Run Code Online (Sandbox Code Playgroud)
很奇怪,错误进入Validation.Errors集合.以下代码导致我的IDataErrorInfo错误消息显示在绑定控件旁边.这让我认为问题出在xaml方面,而不是viewmodel方面.
<ContentPresenter
Content="{Binding ElementName=txtCaseNumber, Path=(Validation.Errors).CurrentItem}" />
Run Code Online (Sandbox Code Playgroud)
另外,
System.Windows.Controls.Validation.GetHasError(txtCaseNumber)
返回true.
如果有所作为,我将在winforms中托管WPF.我在代码或样式中找不到任何对Validation或ErrorTemplate的引用,所以我很确定这不是一个样式自己的目标.
这基本上是为了包装java工厂方法,如果无法根据输入创建项目,则抛出异常.我正在寻找基础库中的东西,如:
def exceptionToOption[A](f: => A):Option[A] ={
try{
Some(f)}
catch{
case e:Exception => None}
}
Run Code Online (Sandbox Code Playgroud)
用法:
val id:Option[UUID] = exceptionToOption(UUID.fromString("this will produce None"))
Run Code Online (Sandbox Code Playgroud)
我知道我可以自己写,但我想检查一下,我不是在重新发明轮子.
如果属性是某个值,我想更改属性的值.在C#中我会写:
if(x=="NotAllowed")
x="CorrectedValue;
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止,请不要笑:
<PropertyGroup>
<BranchName>BranchNameNotSet</BranchName>
</PropertyGroup>
///Other targets set BranchName
<Target Name="CheckPropertiesHaveBeenSet">
<Error Condition="$(BranchName)==BranchNameNotSet" Text="Something has gone wrong.. branch name not entered"/>
<When Condition="$(BranchName)==master">
<PropertyGroup>
<BranchName>MasterBranch</BranchName>
</PropertyGroup>
</When>
</Target>
Run Code Online (Sandbox Code Playgroud) 我有一个特殊类型的异常,我希望Visual Studio 不会中断并显示Exception Assistant屏幕.基本上我想让我的正常异常处理基础设施处理它.
异常是我编写的System.Exception的继承者,并且有源代码.抛出它的任何地方我都希望VS不能捕获它,也就是说只有一次抛出一个新的BlahException()就没用了; 在代码中.这是因为抛出了很多异常,我不想单独压制每一个实例.
如果它有所作为,我在Visual Studio 2010 Ultimate,Framework 3.5 SP1上.
我一直在寻找,但我找不到隐含的转换器.写一篇文章显然是微不足道的,但我想知道我是否错过了某个scalaz库中的一个!
我正在尝试在F#中实现duck typing,我发现你可以在F#泛型中有一个成员约束,如下所示:
type ListEntryViewModel<'T when 'T : (member Name : string)>(model:'T) =
inherit ViewModelBase()
member this.Name with get() = model.Name
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试引用该属性时,上面的代码将无法编译.我收到编译器错误:
此代码不够通用.^ T :(成员get_Name:^ T - >字符串)时的类型变量^ T无法一般化,因为它会逃避其范围.
是否可以通过通用约束实现鸭子类型?
scala ×5
.net ×1
32bit-64bit ×1
adornerlayer ×1
c# ×1
cake-pattern ×1
debugging ×1
dependencies ×1
dll ×1
f# ×1
generics ×1
inline ×1
msbuild ×1
scala-option ×1
scalaz ×1
wpf ×1
x86-64 ×1
xaml ×1