如果我宣布这样的字典:
private static Dictionary<string, object> aDict = new Dictionary<string, object>();
Run Code Online (Sandbox Code Playgroud)
现在我想在另一个地方使用它.我该如何重置?
aDict = new Dictionary<string, object>(); // like this?
aDict = null; // or like this?
Run Code Online (Sandbox Code Playgroud)
或其他重置样式?
我有一个复杂的库A,包含几个生成以下程序集的c#项目:
该库是由我编写的,我可以完全访问其源代码.这取决于几个NuGet包,假设它们是:
这些库(MongoDb驱动程序和EntLib)未安装在GAC中.
我还有一个Web项目B,我想在其中使用库A作为DLL的引用(不包括项目到解决方案B).Web项目依赖于几个NuGet包,其中包括:
在解决这些包的版本A,并B为他们没有同步发展不匹配.图书馆A是在一年前开发的,从那时起就一直使用.
问题:分发库的正确方法是什么,A以便:
A没有引用lib 依赖项,任何解决方案都可以使用它.A依赖项版本,则它们不会发生冲突.我目前的做法:
A.Core, A.Caching, A.Logging, A.MongoDb.B使用mongocsharpdriver 1.5版,lib A使用1.1版(版本不兼容).那么,我该怎么办?处理冲突引用与引用引用的正确方法是什么?
TL; DR:是否可以在Team Project中为一个解决方案设置门控签到,这样就不会弄乱同一个团队项目中的其他(非相关)代码?
详细:
我们有TFS团队项目,里面有几个解决方案,每个解决方案位于不同的文件夹 这些解决方案大多属于开发团队,每天使用构建服务器构建.
一个解决方案是QAs,它包含自动UI测试.现在我们要设置门控签到(通过此处和其他一些文档的说明)
这涉及为其创建构建定义和CI触发器.但在我们看来,每次提交团队项目时都会触发这样的构建设置,而不仅仅是QA团队执行的设置.
所以,问题是我们是否可以为我们的QA文件夹进行门控登记,而无需迁移到单独的Team Project并且与开发人员混淆.
谢谢.
编辑:相关问题
阅读这篇博文 – https://www.haskellforall.com/2021/05/the-trick-to-avoid-deeply-nested-error.html – 我意识到我不明白为什么“技巧”实际上有效这个情况:
{-# LANGUAGE NamedFieldPuns #-}
import Text.Read (readMaybe)
data Person = Person { age :: Int, alive :: Bool } deriving (Show)
example :: String -> String -> Either String Person
example ageString aliveString = do
age <- case readMaybe ageString of
Nothing -> Left "Invalid age string"
Just age -> pure age
if age < 0
then Left "Negative age"
else pure ()
alive <- case readMaybe aliveString of
Nothing -> Left "Invalid alive string" …Run Code Online (Sandbox Code Playgroud) 在向文本框输入负值时,我收到错误消息 Unhandled Exception: System.OverflowException: Value was either too large or too small for a UInt32.
这是我的代码:
UInt32 n = Convert.ToUInt32(textBox2.Text);
if (n > 0)
//code
else
//code
Run Code Online (Sandbox Code Playgroud) 我正在研究一种具有两种当前"冲突"功能的DSL解析器:
123.4.ID[2..5](ID被定义为'a'..'z'+并且无关紧要.部分'[2..5]'最重要.应解析它的测试语法如下所示:
grammar DotTest;
span returns [double value]
: ID'['e=INT'..'f=INT']' { /*some code to process the values*/ $value = (double)(Int32.Parse($e.text) + Int32.Parse($f.text)); } ;
num returns [double value]
: DOUBLE {$value = double.Parse($DOUBLE.text); } ;
INT : '0'..'9'+ ;
DOUBLE : '0'..'9'+'.''0'..'9'+ ;
ID : 'a'..'z'+ ;
WS : ( ' ' | '\t' | '\r' | '\n' ) {$channel=HIDDEN;} ;
Run Code Online (Sandbox Code Playgroud)
问题:规则span无法正确解析其输入,因为它与DOUBLE令牌冲突.词法分析器尝试匹配2..5为a DOUBLE并失败.以下是它在ANTLR Works中的外观: …
c# ×3
.net ×1
antlr ×1
antlr3 ×1
assemblies ×1
dictionary ×1
do-notation ×1
haskell ×1
nuget ×1
parsing ×1
tfs ×1
tfs2010 ×1
tfsbuild ×1
typechecking ×1
types ×1