我正在尝试制作一个带有几个(无线电)按钮的GroupBox.但在样本中,我正在使用复选框.
<GroupBox Header="Aðgerðir" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="270,0,0,178" Height="106" Width="176">
<CheckBox Content="CheckBox" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<CheckBox Content="CheckBox" HorizontalAlignment="Left" VerticalAlignment="Bottom"/>
</GroupBox>
Run Code Online (Sandbox Code Playgroud)
以上不起作用,视觉工作室说"无效标记".
这在这里工作正常
<GroupBox Header="Aðgerðir" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="270,0,0,178" Height="106" Width="176">
<CheckBox Content="CheckBox" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</GroupBox>
Run Code Online (Sandbox Code Playgroud)
我不明白.如果我运行调试器,它说"内容只能设置一次",但删除复选框的内容部分似乎没有任何效果.
在async/await上尝试MSDN的例子时,为什么我在await运算符之后无法达到断点?
private static void Main(string[] args)
{
AccessTheWebAsync();
}
private async Task<int> AccessTheWebAsync()
{
// You need to add a reference to System.Net.Http to declare client.
HttpClient client = new HttpClient();
// GetStringAsync returns a Task<string>. That means that when you await the
// task you'll get a string (urlContents).
Task<string> getStringTask = client.GetStringAsync("http://msdn.microsoft.com");
// You can do work here that doesn't rely on the string from GetStringAsync.
/*** not relevant here ***/
//DoIndependentWork();
// The await operator suspends AccessTheWebAsync. …Run Code Online (Sandbox Code Playgroud) 有没有办法使用C#6的字符串插值多行字符串?
就像是
string a = "1111";
string s = @$"
{a}
";
Run Code Online (Sandbox Code Playgroud)
以上不起作用.
我一直在遵循MSDN的Hello World指南来开发Visual Studio扩展(本文专门介绍如何将其创建为Visual Studio工具栏命令)。
我正在尝试列出当前/活动解决方案中包含的所有项目。
在为命令模板自动生成的代码中。
我尝试了EnvDTE的Solution的Projects属性,但显示零项目。
也有一个ActiveSolutionProjects属性,但它也显示一个空数组。
如何实现的?
PS:我尝试过DTE和DTE2接口,因为从文档中了解使用哪个版本会造成混淆。我得到了DTE2的空服务,所以我要使用DTE。
我的解决方案资源管理器看起来像:
更新:来自gitter / extendvs的 Bert Huijben 建议在VSSDK扩展性示例中找到以下内容-但这也不起作用(在构造函数和回调函数中都返回0元素):
private Hashtable GetLoadedControllableProjectsEnum()
{
Hashtable mapHierarchies = new Hashtable();
IVsSolution sol = (IVsSolution)this.ServiceProvider.GetService(typeof(SVsSolution));
Guid rguidEnumOnlyThisType = new Guid();
IEnumHierarchies ppenum = null;
ErrorHandler.ThrowOnFailure(sol.GetProjectEnum((uint)__VSENUMPROJFLAGS.EPF_LOADEDINSOLUTION, ref rguidEnumOnlyThisType, out ppenum));
IVsHierarchy[] rgelt = new IVsHierarchy[1];
uint pceltFetched = 0;
while (ppenum.Next(1, rgelt, out pceltFetched) == VSConstants.S_OK &&
pceltFetched == 1)
{
IVsSccProject2 …Run Code Online (Sandbox Code Playgroud) 我想编写将 Sql Server 过程结果作为DataTable对象返回的通用代码。DataTable.Rows.Add()然后我编写了下面的代码,但是,我偶然发现了期望参数的问题params object[],而我必须传递的是IEnumerable<string>.
public static DataTable GetProcedureResults(int id)
{
return GetQueryResultAsDataTable<MyProcedure_Result>(_sqlServerDB.MyProcedure(id));
}
private static DataTable GetQueryResultAsDataTable<T>(ObjectResult<T> objectResult)
{
DataTable resultAsDataTable = new DataTable("Result");
var columns = typeof(T).GetProperties();
foreach (var column in columns)
{
resultAsDataTable.Columns.Add(column.Name, typeof(string));
}
foreach (var resultRecord in objectResult)
{
var fields = resultRecord.GetType().GetProperties().Select(p => p.GetValue(resultRecord).ToString());
resultAsDataTable.Rows.Add(fields);
}
return resultAsDataTable;
}
Run Code Online (Sandbox Code Playgroud)
对于熟悉这个问题的人来说,你可能已经猜到我最后的数据表是这样的:
这些值都被视为单个对象,因此都被插入到第一列中。
如果有的话,这里的解决方法是什么?我在其他帖子中读到,似乎 C#6 会解决这个问题,除此之外没有找到清晰简洁的解决方案。
我试图弄清楚为什么以下代码抛出StackOverflowException(我终于在SO中发布了StackoverflowException!).
调试似乎指出p.GetValue(this)正在生成进一步的调用.
究竟是什么触发了无限的调用链?是因为p.GetValue(this)最终返回当前对象的一个实例,因此就像构造一个新实例一样(并且在其构造中构造自身的每个对象都会导致Stackoverflow异常)?
我对以下代码的意图是让一个对象能够告诉它有多少属性具有null/space/empty值.
public class A
{
public string S1 { get; set; }
public string S2 { get; set; }
public int NonInitializedFields
{
get
{
int nonNullFields = 0;
var properties = this.GetType().GetProperties();
foreach (var p in properties)
{
var value = p.GetValue(this);
if (value == null || string.IsNullOrWhiteSpace(value.ToString()))
nonNullFields++;
}
return nonNullFields;
}
}
}
//the following throws a StackOverflowException (the construction line itself)
A a1 = new A1{ S1 = "aaa"};
Console.WriteLine(a1.NonInitializedFields);
Run Code Online (Sandbox Code Playgroud)
PS我的想法最初只涉及简单的字符串属性,没有别的,所以这种方法与其他类型可能出现的问题无关紧要.
我正在使用iTextSharp从pdfs中提取数据.我偶然发现了以下问题所描述的问题:
我将其转换为pdf,使用其中一个免费的在线转换器,生成一个类似的pdf(当我生成pdf时,我没有将样式应用于excel):

现在,使用iTextSharp从pdf中提取数据,返回以下字符串作为提取的数据:
如您所见,包裹的单元格数据会生成新行,其中每个包裹的数据由一个空格分隔.
问题:现在,如何确定给定的包装数据所属的列?如果只iTextSharp保留与列一样多的空格......
在我的示例中 - 如何识别111属于哪个列?
更新1:
只要字段有多个单词(即包含空格),就会出现类似的问题.例如,考虑上面示例的第1行:
说它看起来像
---A--- ---B--- ---C--- ---D---
aaaaaaa bb b cccc
Run Code Online (Sandbox Code Playgroud)
iText将再次生成这个提取,如下所示:
aaaaaaa bb b cccc
Run Code Online (Sandbox Code Playgroud)
这里的问题相同,必须确定每列的边界.
我在一个Umbraco 7.0.3宏中得到错误,该宏遍历所有的孩子并且只返回一个列表.首先,我使用Umbraco后台来构建基本的导航和侧面菜单项.同时,一旦设置了本地环境,我就开始在本地工作了.
问题是,我使用后台进行导航构建的代码工作正常但如果项目是在VS2012 Ultimate版本中创建的,相同的代码不起作用,即使我只是从原始工作导航宏粘贴相同的代码.
我收到以下错误:'Umbraco.Web.Models.DynamicPublishedContentList'不包含'Any'的定义,表明页面列表是动态的.令我高兴的是,相同的代码适用于现有导航,那么为什么不使用新项目呢?在VS2012中是否有任何设置标记文件无法使用UTF8编辑器或无效的HTML?
我的问题是如何在剃须刀宏中找到计数或任何项目?我已经尝试了Enumerable items count和任何方法,但没有用.
有关如何查找项目数量的任何指示都会有所帮助.
我正在提供有关Paulo的请求的更多信息.在"startNode.Children.Where("Visible")上出错.Any()"行.以下是宏代码:
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@*
=== Macro Parameters To Create ===
Show:True Alias:nodeId Name:Node ID Type:Content Picker
*@
@if (Model.MacroParameters["startNodeID"] != null)
{
@* Get the start node as a dynamic node *@
var startNode = Umbraco.Content(Model.MacroParameters["startNodeID"]);
if (startNode.Children.Where("Visible").Any())
{
<div class="container">
<div class="row">
@foreach (var page in startNode.Children.Where("Visible"))
{
<div class="col-sm-3 col-md-3">
<div class="thumbnail">
<img src="~/images/Tiles/300x200.jpg" alt="@page.Name">
<div class="caption">
<h3><a href="@page.Url">@page.Name</a></h3>
<p>@page.GetPropertyValue("summary").Substring(0, 100)</p>
<a href="@page.Url" class="btn btn-default">Read More</a>
</div>
</div>
</div> …Run Code Online (Sandbox Code Playgroud) 在使用中Entity Framework Database First,
为什么在我的任何DbContext Sets一个中发出Create方法会创建一个set实体的实例而不增加其Identity列?
考虑到我构建了我想要首先添加到给定集合的所有实体,并且最后只有一次,我将它们全部添加到DbContext.SaveChanges()- DbSet.Create()如果不是属性初始化标识列,那么真正使用的是什么?我可以简单地手动实例化我的DbSetasvar newEntity = new MyClass();
我从 .NET 6.0 更改为 .NET 7.0,发现一些性能关键型任务所需的时间几乎是 .NET 6.0 的两倍(没有进行任何代码更改!)。
我能够得出一个简单的例子,它至少显示了一个有趣的效果:
using System;
using System.Collections.Generic;
using System.Diagnostics;
public readonly struct MyStruct {
public int Parent { get; }
public int Child { get; }
public MyStruct(int p, int c) {
Parent = p;
Child = c;
}
}
static class MyProgram {
static int Main(string[] args) {
Stopwatch stopwatch = new Stopwatch();
List<MyStruct> list = new() { new(1, 1)};
stopwatch.Start();
for (int j = 0; j < 500_000; ++j) {
for …Run Code Online (Sandbox Code Playgroud) 查看MDN对JavaScript,语法和类型部分的介绍 - 一篇内容如下:
声明变量
您可以通过三种方式声明变量:
- 使用关键字var.例如,var x = 42.此语法可用于声明局部变量和全局变量.
- 只需为其分配一个值即可.例如,x = 42.这总是声明一个全局变量.它会生成严格的JavaScript警告.你不应该使用这个变种.
- 使用关键字let.例如,设y = 13.此语法可用于声明块范围局部变量.请参阅下面的变量范围
以下代码片段似乎适合"通过简单地为其赋值"方案,这意味着该变量应被视为全局变量.
(function(){
console.log(myVar);
//the following will throw a ReferenceException error
//myVar = 10;
//the following will not, and I can understand it following the defintion of the behavior of using `var` keyword
//var myVar = 10;
})();
Run Code Online (Sandbox Code Playgroud)
但是,运行代码将在myVar注释时生成ReferenceException ,而在未注释时生成undefined.我希望它在两种情况下都生成未定义,因为if myVar是一个全局变量(根据定义),而不是javascript的变量提升会在到达之前使其知道console.log(myVar);
这种行为背后的解释是什么?(我描述的行为是我在firefox的控制台中尝试时得到的,但运行它jsfiddle不会引发错误).
自动执行功能是吊装的例外吗?
c# ×7
.net ×1
async-await ×1
c#-6.0 ×1
constructor ×1
dbset ×1
envdte ×1
groupbox ×1
hoisting ×1
itextsharp ×1
javascript ×1
macros ×1
parameters ×1
performance ×1
radio-button ×1
razor ×1
umbraco7 ×1
vsix ×1
wpf ×1