IronPython已经出现了一段时间了,所以当我今天早上安装Visual Studio 2010 RC1"Ultimate"时,我惊讶地发现它无法从安装程序中选择.相反,仍然需要去Codeplex.有人知道为什么没有包括在内吗?
如何确定每个设备驱动程序消耗的内存量?我假设这可以使用一些Win32或.NET API完成,但我只是无法确定哪个.
我应该在哪里存储我的Android应用程序的配置设置?
来自.NET世界我期待像.config文件.我是否在res/values下创建一个文件,并使用它?
我正在使用Visual Studio调试转换.使用转换的应用程序通常也会传递一些参数:
XslTransform xslTransform = new XslTransform();
xslTransform.Load(myXslt);
XsltArgumentList transformArgumentList = new XsltArgumentList();
transformArgumentList.AddParam(paramName1, String.Empty, paramValue1); // this
transformArgumentList.AddParam(paramName2, String.Empty, paramValue2); // and this
xslTransform.Transform(inputStream, transformArgumentList, outputStream);
Run Code Online (Sandbox Code Playgroud)
如何在调试时设置参数?
我有一个属性为Dictionary的类:
public class Entity
{
public Dictionary<string, string> Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想切换此属性以使用延迟初始化.我尝试了以下方法:
public class Entity
{
private Lazy<Dictionary<string, string>> name = new Lazy<Dictionary<string, string>>(() => new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase));
public Dictionary<string, string> Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这当然是一个错误,因为名称和名称有不同的类型.但是对于我的生活,我无法弄清楚如何正确指定.我真正想要的是让Name保持为null,直到我访问它,然后在第一次读或写时创建它.
我只想使用PowerShell列出当前工作目录下的所有目录.这很容易来自Bash shell:
ls -d */
Run Code Online (Sandbox Code Playgroud)
或Windows中的cmd.exe:
dir /a:d
Run Code Online (Sandbox Code Playgroud)
然而,使用PowerShell,我似乎无法使用单个命令来执行此操作.相反,我发现的唯一作品是:
ls | ? {$_Mode -like "d*"}
Run Code Online (Sandbox Code Playgroud)
这似乎过于冗长和涉及,我怀疑我不需要在那里单独的Where子句.Get-ChildItem的帮助并不清楚如何过滤模式.任何人都可以开导我吗?
我需要知道Powershell在使用-replace操作符或Replace()方法时有多少替换.或者,如果这不可能,如果它完全取代了.
例如,在Perl中,因为替换操作返回所做的替换次数,并且零为false,而在布尔上下文中非零为真,可以写:
$greeting = "Hello, Earthlings";
if ($greeting ~= s/Earthlings/Martians/) { print "Mars greeting ready." }
Run Code Online (Sandbox Code Playgroud)
但是使用Powershell,运算符和方法返回新字符串.看起来运营商提供了一些额外的信息,如果有人知道如何要求它(例如,捕获的组存储在它在当前范围内创建的新变量),但我无法找到如何获得计数或成功价值.
我可以比较前后值,但这似乎完全没有效率.
我有以下XML:
<LOCALCELL_V18 ID = "0x2d100000">
<MXPWR ID = "0x3d1003a0">100</MXPWR>
</LOCALCELL_V18>
<LOCALCELL_V18 ID = "0x2d140000">
<MXPWR ID = "0x3d1403a0">200</MXPWR>
</LOCALCELL_V18>
<LOCALCELL_V18 ID = "0x2d180000">
<MXPWR ID = "0x3d1803a0">300</MXPWR>
</LOCALCELL_V18>
Run Code Online (Sandbox Code Playgroud)
我想得到每个的内在文本<MXPWR>.但是,不允许使用ID#来定位内部文本,因为它并不总是相同的.这是我的代码:
XmlNodeList LocalCell = xmlDocument.GetElementsByTagName("LOCALCELL_V18");
foreach (XmlNode LocalCell_Children in LocalCell)
{
XmlElement MXPWR = (XmlElement)LocalCell_Children;
XmlNodeList MXPWR_List = MXPWR.GetElementsByTagName("MXPWR");
for (int i = 0; i < MXPWR_List.Count; i++)
{
MaxPwr_form_str = MXPWR_List[i].InnerText;
}
}
Run Code Online (Sandbox Code Playgroud)
任何意见将不胜感激.
我输入的字符串只包含数字(只是简单的拉丁文字符串,0-9,所以例如"0123"),存储为std :: wstring,我需要每个字符串作为char*.这对我来说最好的方法是什么?这是我最初的做法:
void type::convertWStringToCharPtr(_In_ std::wstring input, _Out_ char * outputString)
{
outputString = new char[outputSize];
size_t charsConverted = 0;
const wchar_t * inputW = input.c_str();
wcstombs_s(&charsConverted, outputString, sizeof(outputString), inputW, input.length());
}
Run Code Online (Sandbox Code Playgroud)
编辑:下面的代码工作.谢谢大家!
void type::convertWStringToCharPtr(_In_ std::wstring input, _Out_ char * outputString)
{
size_t outputSize = input.length() + 1; // +1 for null terminator
outputString = new char[outputSize];
size_t charsConverted = 0;
const wchar_t * inputW = input.c_str();
wcstombs_s(&charsConverted, outputString, outputSize, inputW, input.length());
}
Run Code Online (Sandbox Code Playgroud) 我是从C#转向C++而const-correctness对我来说还是新手.在C#中我可以声明这样的属性:
class Type
{
public readonly int x;
public Type(int y)
{
x = y;
}
}
Run Code Online (Sandbox Code Playgroud)
这将确保仅在初始化期间设置x.我想在C++中做类似的事情.我能想出的最好的是:
class Type
{
private:
int _x;
public:
Type(int y) { _x = y; }
int get_x() { return _x; }
};
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?更好的是:我可以使用结构吗?我想到的类型实际上只是一个数据集合,没有逻辑,所以如果我能保证只在初始化期间设置它的值,结构会更好.