这个代码块中代字号的目的是什么?
public override int GetHashCode()
{
return ~this.DimensionId.Id ^ this.ElementId.Id;
}
Run Code Online (Sandbox Code Playgroud)
^运算符(C#参考) Visual Studio 2010二进制^运算符是为整数类型和bool预定义的.对于整数类型,^计算其操作数的按位异或.对于bool操作数,^计算其操作数的逻辑异或; 也就是说,当且仅当其中一个操作数为真时,结果才为真.
〜运算符(C#参考) Visual Studio 2010〜运算符对其操作数执行按位补码运算,这样可以反转每个位.为int,uint,long和ulong预定义了按位补码运算符.
〜(代字号)运算符对其单个整数操作数执行按位补码.(因此〜运算符是一元运算符,如!和一元 - ,&和*运算符.)补码表示将所有0位更改为1,将所有1更改为0
在这种情况下使用它的原因是什么(而不是简单地排除它)?
在尝试从我的工作站建立连接(实际上,我在WinXP32和Win764工作站上看到相同的行为)到Oracle服务器时,我总是尝试的第一件事是tnsping.当我这样做时,这就是我得到的:
> C:\>tnsping MYDBNAME
>
> TNS Ping Utility for 32-bit Windows:
> Version 10.2.0.1.0 - Production on
> 25-JAN-2 011 15:03:35
>
> Copyright (c) 1997, 2005, Oracle. All
> rights reserved.
>
> Message 3511 not found; No message
> file for product=NETWORK,
> facility=TNSMessage 3512 not found;
> No message file for product=NETWORK,
> facility=TNSAttempting to contact
> (DESCRIPTION = (ADDRESS_LIST =
> (ADDRESS = (PROTOCOL = TCP) (HOST =
> thisismyservername.com)(PORT = 1577)))
> (CONNECT_DATA = …Run Code Online (Sandbox Code Playgroud) 我想在excel加载项中编写一个小日志功能,我将从许多不同的工作簿中调用它.我希望能够通过仅传递日志文本来调用它,并且日志函数本身可以处理时间戳,工作簿名称等.
但是,我不能使用ThisWorkbook或ActiveWorkbook来确定哪个工作簿负责进行调用,因为Thisworkbook将返回对加载项本身的引用,而在工作簿中运行的VBA代码可以在Excel中主动关注的工作簿中运行进行调用,但ActiveWorkbook将返回窗口中具有焦点的那个.
Application.Caller看起来像一个可能的解决方案,但这似乎仅在从单元格调用函数时才起作用,而不是从VBA调用.
我想做什么不可能?
根据> 1人,这实际上是不可能的.如果有人碰巧知道一些聪明的解决方法,请大声说出来.
我有一些现有的c#代码,我想通过com interop公开,以便可以从Excel VBA调用它.由于我将执行许多嵌套批量更新操作,我需要支持事务,并且为了最小化c#级别所需的重构,我想使用TransactionScope方法:
使用事务范围实现隐式事务
http://msdn.microsoft.com/en-us/library/ms172152.aspx
TransactionScope类提供了一种将代码块标记为参与事务的简单方法,而无需您与事务本身进行交互.事务范围可以自动选择和管理环境事务.由于其易用性和高效率,建议您在开发事务应用程序时使用TransactionScope类.
此外,您无需使用事务明确地登记资源.任何System.Transactions资源管理器(例如SQL Server 2005)都可以检测由作用域创建的环境事务的存在并自动登记.
我的问题是:是否可以在VBA代码中启动 TransactionScope(或通过COM interop调用ac#方法实例化并返回TransactionScope对象),然后通过COM Interop继续调用各种其他c#对象,这将全部自动参与单根交易?
如果我在SSMS中运行此命令:
set showplan_xml on
GO
exec some_procedure 'arg1', 'arg2','arg3'
GO
set showplan_xml off
GO
Run Code Online (Sandbox Code Playgroud)
我获得了查询执行中涉及的完整调用堆栈的XML输出,以及任何建议的索引等.
怎么可能从C#中读到这个?
(一个用例可能是定期启用此功能并在生产环境中记录这些结果,以便密切关注索引建议.)
我正在开发一个应用程序,用于对外部网页的一小部分进行屏幕抓取(不是整个页面,只是其中的一小部分).
所以我的代码完全适用于抓取html,但我的问题是我不仅要抓取原始html,而且还要用来格式化我正在提取的页面部分的CSS样式,所以我可以显示在新页面,原始格式完好无损.
如果您熟悉firebug,它可以显示哪些CSS样式适用于您突出显示的页面的特定子集,所以如果我能找到一种方法,那么我可以在显示时使用这些样式我的新页面上的内容.但我不知道该怎么做........
我的所有表都有一些审计列(CreateDate,CreateBy,UpdateDate,UpdateBy)
由于它们只是占用可视空间,是否有可能以某种方式隐藏这些列,以便它们不会出现在SSMS或SSMSE的数据库图表中?
而不是像这样的代码:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_IP4RouteTable",,48)
For Each objItem in colItems
Wscript.Echo "Age: " & objItem.Age
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "Description: " & objItem.Description
Next
Run Code Online (Sandbox Code Playgroud)
是否可以按名称访问每个属性,类似于以下语法之一:
Wscript.Echo "Age: " & objItem("Age")
Wscript.Echo "Age: " & objItem.Properties("Age")
Wscript.Echo "Age: " & objItem.Item("Age")
Run Code Online (Sandbox Code Playgroud)
甚至更好,有什么办法可以做到这样的事情:
Dim colItems
Dim objItem
Dim aProperty
Set colItems = objWMIService.ExecQuery("Select * from Win32_IP4RouteTable",,48)
For Each objItem in colItems
For …Run Code Online (Sandbox Code Playgroud) 对于单元格中的给定Excel公式,我希望能够解析公式,以获得公式中包含的Excel范围引用列表.
例如,如果我有一个具有此公式的单元格:
= A + 25 + B
Run Code Online (Sandbox Code Playgroud)
....我希望能够得到公式中包含的一系列excel范围,所以在这种情况下,它将包含[A]和[B]
"为什么你甚至想要这样做?",我可以听到你问:
我想要这样做的一个例子就是在公式中查找范围的"标签".....所以,而不是仅仅执行CTRL +〜查看工作表中的公式,我想选择以编程方式访问公式中的范围引用,以便查找目标范围旁边的标签.
所以,在上面的例子中,我可以编写类似下面的公式:
=Offset(CellFormulaRanges('TheAddressMyFormulaIsIn',1),0,-1)
=Offset(CellFormulaRanges('TheAddressMyFormulaIsIn',2),0,-1)
Run Code Online (Sandbox Code Playgroud)
...这会给我公式中第1和第2范围左边的标签.
这样做将会对已经在Excel本身的一些功能调用,如手工编写公式解析器是一个复杂的任务:
http://ewbi.blogs.com/develops/2004/12/excel_formula_p.html
有没有人编写过一个可以将aspx页面上的所有控件转换为只读版本的函数?例如,如果使用UserDetails.aspx编辑和保存用户信息,如果具有不适当权限的人进入该页面,我想将其呈现为只读.因此,大多数控件将转换为标签,加载来自可编辑原始控件的相应数据.
我认为这可能是一个相当简单的例程,即:
Dim ctlParent As Control = Me.txtTest.Parent
Dim ctlOLD As TextBox = Me.txtTest
Dim ctlNEW As Label = New Label
ctlNEW.Width = ctlOLD.Width
ctlNEW.Text = ctlOLD.Text
ctlParent.Controls.Remove(ctlOLD)
ctlParent.Controls.Add(ctlNEW)
Run Code Online (Sandbox Code Playgroud)
...实际上你需要一个文本框 - >标签转换,但我希望有人可能知道现有的功能,因为在这里和某些控制和情况可能存在一些陷阱.
更新:
- 只是将ReadOnly属性设置为true不是一个可行的解决方案,因为它看起来很愚蠢,事情就像那样灰色. - 避免手动创建辅助视图就是这一点,所以使用巧妙的方式来显示使用标签手工构建的用户界面的只读版本是我想避免的.
谢谢!!