使用lambda表达式是否会为与正常foreach循环相对的GC生成垃圾?
// Lambda version
Foos.ForEach(f=>f.Update(gameTime));
// Normal approach:
foreach (Foo f in Foos)
{
f.Update(gameTime);
}
Run Code Online (Sandbox Code Playgroud)
CLR分析器显示我有69.9%system.Action <T>并且我怀疑是如上所述的foreach循环的lamba版本.真的吗?
编辑:我使用Microsoft CLR分析器:http://download.microsoft.com/download/4/4/2/442d67c7-a1c1-4884-9715-803a7b485b82/clr%20profiler.exe 或http://msdn.microsoft .COM/EN-US /库/ ff650691.aspx
有没有人有关于如何使用Logitech G19键盘SDK与Visual Studio 2010和C#进行LCD编程的示例,教程或链接?我找不到C#的任何地方.
我知道如何在C#中擦除文件,包括它的扇区等.
但是如何覆盖目录呢?
示例:@"C:\mydirectory\"必须永远不可恢复(所有文件内部已经被擦除),以便无法恢复目录结构或其名称.
-------------------下面更新(评论格式是如此麻烦,所以我在这里发布)---
对于文件删除,我查找分区的簇和区段大小,并使用5种不同的算法将其覆盖至少40次,其中最后一种算法始终是随机算法.数据实际上每次都写入磁盘(而不仅仅是内存或其他东西).唯一的风险是,当我擦除某些东西时,理论上可以更改该文件磁盘上的物理地址.我知道的唯一解决方案是在擦除文件后擦除可用磁盘空间,并希望当前没有其他文件部分保留擦除文件的旧物理位置.或者Windows不做这样的事情?
http://www.sans.org/reading_room/whitepapers/incident/secure-file-deletion-fact-fiction_631指出:
"重要的是要注意一致认为,覆盖数据只会降低数据被恢复的可能性.数据被覆盖的次数越多,恢复数据的成本和成本就越高.事实上,Peter Guttman说:"它是通过简单地覆盖存储位置,无论有多少覆盖传递或写入什么数据模式,都无法对存储位置进行消毒."3使用磁力显微镜可以恢复覆盖数据,这可以处理硬盘上的成像磁化模式磁盘.如何实现这一目标的实际细节超出了本文的范围."
我个人认为,当我使用不同的(可能是未知的)算法覆盖100次以上的数据时(如果没有像交换文件那样留在其他地方的数据副本),那将需要任何非常昂贵的专业团队多年才能获得这些数据.如果他们确实在那些年后获得了数据,那么他们应该得到它我认为......那一定是一个终生的项目.
所以:
然后结论应该是:(几乎)不可能在C#中安全擦除?
这是问题的图像:

注意:我发现其他2个非常相似或相同的问题,但我无法解决这些问题: 找到两点之间点的坐标?
PS这不是家庭作业我需要这个编程问题,但我忘了我的数学......
我想在自定义模块中上传图像.必要时,必须永久保存并重命名图像.后来我希望能够在我的表格或我想要的任何地方显示图像.
我目前的代码:
function my_module_name_new_form()
{
....
$form['icon'] = array
(
'#type' => 'file',
'#title' => t('Icon'),
'#description' => t('Click "Chose File" to select an image to upload.')
);
....
}
Run Code Online (Sandbox Code Playgroud)
在提交钩子我有:
// Icon
$filename = $form_state['values']['icon'];
$dest = file_build_uri($filename);
file_save_data('My data', $dest, FILE_EXISTS_RENAME);
Run Code Online (Sandbox Code Playgroud)
没有任何事情发生......我找不到任何与Drupal 7.x兼容的模块,这些模块在某种程度上使这里的生活变得更轻松.
解:
//----------------------------
// Icon
//----------------------------
$dest_dir = file_default_scheme() . '://';// Note: file_directory_path() was removed in Drupal 7.x. // $dest_dir contains the destination directory for the file.
$validators = array('file_validate_extensions' => array('jpg png gif'));
//Save file …Run Code Online (Sandbox Code Playgroud) Nullable值类型是否会生成垃圾?例如:结构不是在堆上创建的,而是在堆栈上创建的,因为它是一个值类型.但是当该结构可以为空时,它仍然是值类型并仍然在堆栈上创建吗?
我问这个问题是因为我需要一个不会产生垃圾的可以为空的结构.
public enum eVisualType
{
None = 0, Torch = 1, Rune01, Rune02, Rune03, FireRed01,
LaserBlackWhiteLeft, LaserBlackWhiteRight, LaserBlueRedLeft, LaserBlueRedRight,
Wheel01, Wheel01a, Wheel02, BlinkingStar, MovingPillar
}
public class EnumTypeConverter : TypeConverter
{
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true; // True means show a combobox
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true; // True will limit to list. false will show the list, but allow free-formentry
}
}
public class VisualTypeConverter : EnumTypeConverter
{
public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) …Run Code Online (Sandbox Code Playgroud) 我知道
my_str.split("\n").first
Run Code Online (Sandbox Code Playgroud)
给了我字符串的第一行.
但遗憾的是,将整个字符串切割成一个数组.如果那个字符串的大小是几MB,那么我只需要前5行......那就是一个更好的选择.我可以编写自己的方法来逐个字符处理字符串,但可能有一些更好的方法,甚至是内置的方法,我需要什么?
从bool []到byte []:将bool []转换为byte []
但我需要将byte []转换为List,其中列表中的第一项是LSB.
我尝试了下面的代码但是当转换为字节并再次回到bools时,我有两个完全不同的结果...:
public List<bool> Bits = new List<bool>();
public ToBools(byte[] values)
{
foreach (byte aByte in values)
{
for (int i = 0; i < 7; i++)
{
Bits.Add(aByte.GetBit(i));
}
}
}
public static bool GetBit(this byte b, int index)
{
if (b == 0)
return false;
BitArray ba = b.Byte2BitArray();
return ba[index];
}
Run Code Online (Sandbox Code Playgroud) module Test
class A
def hi
p 'hi'
end
def bye
p 'bye'
end
puts methods.sort
p '---------'
puts methods.sort - Object.methods
end
end
Run Code Online (Sandbox Code Playgroud)
第二个puts不打印任何东西,第一个不打印'hi'和'bye'.为什么?
我不明白为什么我得到一个零错误.我正确地创建了setter.但它不接受 - =,+ =,或者它自身在=运算符后面.为什么?
class Test
def var; @var || 0; end
def var=(value)
@var = value
end
def initialize
@var = 2.4 # Sample value
end
def test
puts var
var -= 1 # <<< crash: undefined method for nil class
puts var
var = var - 1 # <<< crash: undefined method for nil class
puts var
end
end
a = Test.new
a.test
Run Code Online (Sandbox Code Playgroud) a = [1, 2, 3..9, 10, 15, 20..43]
print a.include?(5) # Returns false
Run Code Online (Sandbox Code Playgroud)
我期待它返回true,但3..9不会被翻译[3,4,5,6,7,8,9].
我错过了一些愚蠢的东西,但我无法弄清楚.基本上我想用常规fixnums和范围初始化它.
移动物体中的代码:
ObjectX.Location.Add(Velocity * Utils.GetMoveDir(start, destination));
Run Code Online (Sandbox Code Playgroud)
实用功能:
public static PointF GetMoveDir(PointF start, PointF destination)
{
PointF substraction = destination.SubStract(start);
if (substraction == PointF.Empty) // If-statement is needed because normalizing a zero value results in a NaN value
return PointF.Empty;
else
return substraction.Normalize(); // <<<< I need something for this
}
Run Code Online (Sandbox Code Playgroud)
扩展我无法工作:
public static PointF Normalize(this PointF A)
{
throw new NotImplementedException(); // How do I solve this to make it like: http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.vector2.normalize.aspx
}
Run Code Online (Sandbox Code Playgroud)
请注意,我不使用XNA框架.
c# ×8
ruby ×4
vector ×2
arrays ×1
boolean ×1
byte ×1
cryptography ×1
delete-file ×1
directory ×1
drupal ×1
enums ×1
file ×1
forms ×1
garbage ×1
image ×1
keyboard ×1
lcd ×1
linq ×1
logitech ×1
methods ×1
normalize ×1
nullable ×1
propertygrid ×1
range ×1
security ×1
split ×1
string ×1
struct ×1
upload ×1
windows ×1
xna ×1