实现使用块以实现dispose的好处时,例如
using (var window = new DialogWindow(Dialogs.MyDialogType))
{
//Some action here
}
Run Code Online (Sandbox Code Playgroud)
我得到一个明显的resharper/visual studio警告,从不使用局部变量窗口,因为在使用体中没有提到它.
这在技术上是正确的,有没有办法声明这样的变量,这些变量没有在使用体中明确使用,但是一旦using语句终止,将调用谁的dispose方法?
叫我一个整洁的吸盘,但我不喜欢在整个地方突然出现灰色警告.
我有一个PowerShell脚本,它执行此操作:
$uri = "$($tfsUri)/$($teamproject)/_apis/build/builds/$($buildID)?api-version=2.0"
$data = @{keepForever = $keepForever} | ConvertTo-Json
$response = $webclient.UploadString($uri,"PATCH", $data)
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Webclient在C#中重写它.
WebClient client = new WebClient();
client.Encoding = System.Text.Encoding.UTF8;
string reply = client.UploadString(url, "keepForever = true");
Console.WriteLine(reply);
Run Code Online (Sandbox Code Playgroud)
但我得到:远程服务器返回错误:(401)未经授权.
这是TFS 2015 VNext,如果有帮助的话.
我有这个有趣的要求.
通常,您使用XSLT转换XML文档.转换后的HTML可以在Web浏览器中查看,这非常有用.我也猜测浏览器处理内存中的转换,因为如果你使用XSLT查看xml文档的页面源,你就看不到html,只看到xml.
我想做的是以下内容.
使用c#
这可能吗.
我不希望对整个解决方案有完整的答案.只是推动正确的方向将是伟大的:)提前感谢.
我有一个调用Web服务方法的控制台应用程序.
在Web服务方法中,我正在使用System.Console.WriteLine,但它被忽略了.
如何从我的Web服务方法中向控制台应用程序提供反馈?
尝试使用列表 Web 服务将日期传递给添加项:
string item = "<Method ID=\"1\" Cmd=\"New\">" +
@"<Field Name=""AcceptanceTime"">" + DateTime.Now + "</Field>"
Run Code Online (Sandbox Code Playgroud)
但它产生了一个异常:
0x8102001c 无效的日期/时间值 日期/时间字段包含无效数据。请检查该值并重试。
知道如何在这里成功传递日期吗?
由于Microsoft没有包含在sharepoint中具有唯一约束的方法,因此必须手动完成.
我通过Web服务方法将项目插入到sharepoint列表中.
如何检查现有列表项是否已存在且具有相同的字段ID值?
我已经知道我应该使用wsLists.getListitems web服务方法,但它并不完全"用户友好".MSDN文档在解释什么应该是一件容易的事情方面再也不是很好.
简单的是/否问题:我可以在自己的C#dll编译的ac#函数中调用在vb.net dll中编译的vb.net函数吗?在同一个应用程序中运行.
我有一个包含逗号分隔的电子邮件地址的字符串.然后我将其加载到一个字符串数组中,然后填充一个更容易使用的列表.一旦填充了列表,我希望能够销毁现在未使用的字符串数组,因为在垃圾收集器清理这些内存浪费之前,该类仍有很多工作要做.
如何手动销毁此字符串数组...
在查看代码时,如果您有更清晰,更有效的方式填充列表,欢迎提出建议.
这是代码:
public class EmailReportManager
{
private List<string> emailAddresses;
public EmailReportManager(string emailAddressesCommaSeperatedList)
{
loadAddresses(emailAddressesCommaSeperatedList);
}
private void loadAddresses(string emailAddressesCommaSeperatedList)
{
string[] addresses = emailAddressesCommaSeperatedList.Split(',');
for (int addressCount = 0; addressCount < addresses.Length; addressCount++)
{
this.emailAddresses.Add(addresses[addressCount]);
}
//Want to destroy addresses here.....
}
}
Run Code Online (Sandbox Code Playgroud) 人们普遍认为C#和VB.net或多或少完全相同.但是如果你在两者中都有开发,你会注意到VB.net在类型转换方面要宽容得多.
例如,拿这个
int someInt = 5;
string someString = "12345";
someString.Replace(someInt, "");
Run Code Online (Sandbox Code Playgroud)
上面的代码将失败,但如果替换为:
int someInt = 5;
string someString = "12345";
someString.Replace(Convert.ToString(someInt), "");
Run Code Online (Sandbox Code Playgroud)
更新
更好的例子:
Dim i As Integer = 1
Dim j As String = "1"
If i = j Then
MessageBox.Show("Bad comparison")
End If
Run Code Online (Sandbox Code Playgroud)
VB.net更宽容,并且不要求你在整个地方输入强制转换.
所以我的问题是:在未来的C#版本中是否仍然需要这种显式类型转换,或者编译器是否能够自动确定所需的类型.并且,这是否意味着VB.net更高级(因为它已经为你自然地进行了这种类型的转换),或者这是否意味着VB.net更容易出错代码或在幕后使用各种对象?
提前致谢...
我有一个列表,此列表包含以下类的集合
public class MyFile
{
public string FileName
{
get;
set;
}
public int Position
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,列表定义将如下所示:
private List<MyFile> MyFiles = new List<MyFile>();
Run Code Online (Sandbox Code Playgroud)
我也可以使用以下方法搜索集合:
MyFile tmpFile = MyFiles.Find(delegate(MyFile item)
{ return item.FileName == fileName; });
Run Code Online (Sandbox Code Playgroud)
到目前为止看起来不错,除了我想要做的是返回MyFile,它不仅匹配文件名,而且在字段pos中也具有最高值.
因此,如果列表中存在以下项目:
myDocument.doc|1
myDocument.doc|2
myDocument.doc|3
myPDF.pdf|1
myPDF.pdf|2
myPDF.pdf|3
Run Code Online (Sandbox Code Playgroud)
并且我的find方法中的fileName ="myDocument.doc"的值,然后我仍然缺少返回myDocument.doc | 3这个项目的逻辑,因为它具有最高的pos值.
在SQL中,我的查询将是
select top 1 * from MyFiles
where fileName = 'myDocument.doc'
order by position desc;
Run Code Online (Sandbox Code Playgroud)
提前致谢.