web-deployment-project setup-project visual-studio visual-studio-2012
在VB.NET中,即使使用Option Stricton,也可以将Enum作为整数传递.
在我的特殊情况下,有人使用与此类似的枚举:
Public Enum Animals
Monkey = 1
Giraffe = 2
Leopard = 3
Elephant = 4
End Enum
Run Code Online (Sandbox Code Playgroud)
但是他们将它作为整数传递,因此他们可以将-1的值设置为"无动物"(无需在Enum本身中包含"无动物"),即:
Public Sub MakeAnimalJump(animalType As Int32)
If animalType < 1 Then
' Clearly not an animal...
Else
' Make that animal jump...
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
然而,在稍后,他们再次要求它成为动物类型.我的问题是,除了a)更改枚举以包含"无"值或b)循环使用枚举中的每个值[Enum].GetValues(...),是否有一种简单的方法可以确定给定的整数是否映射到枚举中的值或不?
我希望可能有[Enum] .TryParse或其他东西,但它看起来不像.
编辑:正如你们有人建议的那样,.NET 4中有一个Enum.TryParse.不幸的是,有问题的项目仍然必须支持Windows Server 2000,所以我们不能使用最新的.NET Framework(希望我们会成为能够尽快放弃对Windows Server 2000的支持..!).
构建项目时,Visual Studio中的"生成序列化程序集"选项会创建MyAssembly.XmlSerializers.dll.这个问题(/sf/ask/65408801/)首先说明了它存在的原因,并且一些答案提供了解决它的方法关闭,但我的问题是你为什么选择关闭它?打开它会导致某些情况下出现问题(如果是这样的话,会出现什么情况)?
这个风格指南对我很有用,但我遇到了规则#5:
通常,应尽量减少这些常数的使用.在许多情况下,将值作为方法实现是一个更好的选择:
int getMaxIterations() // NOT: MAX_ITERATIONS = 25
{
return 25;
}
Run Code Online (Sandbox Code Playgroud)
我从风格的角度理解推理:你不仅要废除"喊叫"常量声明,而且还要减少正在使用的语言结构的数量(如果这是不正确的术语,请原谅我),程序更容易理解.
但是,这种方法对编译器有贬义作用,还是现代编译器(或者实际上是较旧的编译器......)能够足够前瞻以确定每次getMaxIterations函数返回相同的数字?
事实上,在第二个想法,编译器甚至需要展望未来?样式指南建议方法方法比使用常量值更好,我是否正确地猜测这是因为"常量"值在其在任何已完成的范围内使用后不需要保存在内存中?
总之,我的问题是:不鼓励使用常数值,如果是,为什么?
(对于奖励积分,将常量值声明为方法和常量之间的技术差异是什么?)
我已经被MS Connect主持人要求为我在Visual Studio中遇到的问题提供一个小型转储文件.
我的业务稍微关心转储文件中可能包含的内容(大小约为半个gig).
通过"温和关注",我只是意味着他们已经让我知道是否会包含任何专有代码(如果是,那么多少).
转储文件由Visual Studio通过执行以下操作创建:
我认为StackOverflow的可爱人们可以提供帮助.所以我的问题是:
我在IE9中发现了有序列表的烦人问题,我想知道是否有办法修复它而不将有序列表更改为其他内容或摆脱更新面板行为.
症状是,如果在更新面板中使用了有序列表(或BulletedList控件),初始化回发似乎会导致项目符号数字显示0,0,0,而不是1,2,3.
通过以下代码可以轻松重现该问题:
<asp:ScriptManager ID="sm1" runat="server" />
<asp:UpdatePanel ID="upTest" runat="server">
<ContentTemplate>
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
<asp:Button ID="btnWhatever" runat="server"
Text="Click me to see IE break the list..." />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
(只需将其复制到一个空白的ASP.NET网站并点击Debug)
这类似于我以前看过的与CSS有关的问题,但这里没有涉及CSS.
有没有解决这个问题的方法,还是我必须考虑不同的控制(例如转发器)?
我还没有在IE8或更低版本上测试过这个.但是,如果我更改IE9的渲染模式(通过F12开发人员工具),我会得到以下结果:
浏览器模式
文件模式
编辑:这似乎是IE特有的.我无法在Google Chrome 15,FireFox 8或Opera 11.52上重现此问题.
对于这个奇怪的设计师问题(至少,我认为它与设计者有关)是否有理由/修复,因此当我调试应用程序时,表单上的控件不会像在设计窗口中那样出现.
请看下面的两个截图来说明问题(注意:我已经将表格中的一些内容涂黑了,这不是问题):
图1:显示表单在设计器视图中的显示方式

图2:显示表单在调试模式下的显示方式

您可以清楚地看到某些按钮已在表单上移动了位置.
注意:乍一看,这可能看起来像一个副本:Windows窗体设计器破坏表单布局.但是,我没有安装任何其他工具或组件.这只是Windows 7 32位上Visual Studio 2012的标准"vanilla"版本.
我也遇到过这个问题:Windows窗体应用程序中的UI控件重叠和字体问题.但是,我没有使用"大字体",也没有在控件上使用任何非标准字体(所有标签和按钮文本都保留为默认值).不过,我可以看到这将如何影响控制位置,并将在此区域进行更多检查.
表单的Load方法中没有任何事情发生.
我也在使用TFS 2012.
可能是什么导致了这个?我能做些什么来解决它吗?
编辑:我已删除每个标签和按钮控件的字体属性,允许系统设置默认值.仍然没有变化.有趣的是,如果我在设计模式下打开表单,然后保存它,然后关闭它,然后再次打开它,按钮已移动...如果我这样做了几次,按钮会移动,直到它们离开表单.
我在我们的一个遗留应用程序中遇到了一些奇怪的Oracle语法,我很感兴趣......
查询
(名称已被修改以保护无辜者)
SELECT COUNT(1) AS WEEKLYCOUNT
FROM MONKEYS MD
WHERE
MD.MID||'' IN
(
SELECT DISTINCT MD.MID
FROM MONKEYS MD, GIRAFFES GD
WHERE
(MD.MID = GD.MID(+)||'')
AND CURRENT_STATUS = 'Healthy'
AND GIRAFFE_TYPE = 'Long-necked'
AND INTERESTING_DATE BETWEEN
'22 December 2011' AND '29 December 2011'
)
HAVING COUNT(MD.MID) > 0
Run Code Online (Sandbox Code Playgroud)
我不确定的是||''语法.||到目前为止,我从未见过用于Oracle中的连接.它在这里似乎没有意义......
关于这是做什么的,关于它为什么这样做以及这种语法如何工作的任何想法都会很棒.
更多信息
有趣的是,这个SQL在SQLPlus中返回以下内容:
no rows selected
Elapsed: 00:00:00.03
SQL>
Run Code Online (Sandbox Code Playgroud)
我重写了相同的SQL(减去奇怪的语法),利用我对系统的了解来生成我相当确定的相同结果:
SELECT COUNT(1) AS WEEKLYCOUNT
FROM
MONKEYS MD
LEFT JOIN GIRAFFES GD ON GD.MID = MD.MID
WHERE …Run Code Online (Sandbox Code Playgroud)