我使用以下代码来流式传输图像源:
BitmapImage Art3 = new BitmapImage();
using (FileStream stream = File.OpenRead("c:\\temp\\Album.jpg"))
{
Art3.BeginInit();
Art3.StreamSource = stream;
Art3.EndInit();
}
artwork.Source = Art3;
Run Code Online (Sandbox Code Playgroud)
"artwork"是应该显示图像的XAML对象.该代码不应该锁定图像,它不会将其锁定好,但也不显示它,默认图像变为"无"......我的猜测是我没有正确使用流,并且我的图像变为空.救命?
更新:
我现在使用以下代码,朋友向我建议:
BitmapImage Art3 = new BitmapImage();
FileStream f = File.OpenRead("c:\\temp\\Album.jpg");
MemoryStream ms = new MemoryStream();
f.CopyTo(ms);
f.Close();
Art3.BeginInit();
Art3.StreamSource = ms;
Art3.EndInit();
artwork.Source = Art3;
Run Code Online (Sandbox Code Playgroud)
由于某些奇怪的原因,此代码返回以下错误:
图像无法解码.图像标头可能已损坏.
我究竟做错了什么?我确信我试图加载的图像没有损坏.
我想知道是否有一个我可以在乳胶中使用的条件命令(例如,\ ifthenelse)允许我在一种情况下使用单词'a'而在另一种情况下使用单词'an'基于是否或者不是下面的单词以元音开头.
所以我自己一直在做一个相对较大的项目,我已经意识到之前的一些变量名称是......不太理想.
但是如何轻松地更改项目中的变量名称?是否有这样的工具可以通过项目目录,解析所有文件,然后将变量名称替换为所需的名称?它必须足够聪明才能理解我想象的语言.
我在考虑使用regexp(linux上的sed/awk?)工具来替换变量名,但有很多次我的特定变量也作为字符串的一部分包含在内.
还有关于在c ++命名空间上更改内容的问题,因为我的项目中实际上有两个共享相同名称的类,但它们位于不同的名称空间中.
我记得visual studio能够做到这一点,但是在linux上做这个最安全,最优雅的方法是什么?
我正在阅读关于泛型中的通配符的java教程.在以下代码中:
void printCollection(Collection<Object> c) {
for (Object e : c) {
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着集合c将类型object作为其元素,我们无法调用c.add("apple"),因为"apple"是一个字符串,for循环object从集合中获取任何元素c?
但我不明白以下代码,
void printCollection(Collection<?> c) {
for (Object e : c) {
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码使用通配符,表示"元素类型与任何内容匹配的集合".这是否意味着我们可以在任何类型的对象添加到它,比如c.add("string");,
c.add(1);和 c.add(new apple());?并且for循环e从集合中获取任何对象c,如果c不是object类型,我们说c的元素是Integer.这段代码有效吗?这是否意味着它应该被施放?
虽然似乎有一种克隆整个仓库的方法,这里描述的,我只需要Java API文件,仅此而已.(提示:流量限制+慢速连接)
现在,这是整个git repo,但是普通的Java API文件在哪里?或者他们是在一个完全不同的位置?有人有想法吗?我不是那么多git专家.
我写了以下代码来删除句子中的元音:
main = print $ unixname "The House"
vowel x = elem x "aeiouAEIOU"
unixname :: [Char] -> [Char]
unixname [] = []
unixname (x:xs) | vowel x = unixname xs
| otherwise = x : unixname xs
Run Code Online (Sandbox Code Playgroud)
只是想知道是否可以为元音创建数据类型?编译器不允许我在数据类型中使用字符.
在请求我的示例应用程序的主页时,我收到以下错误消息(遵循Michael Hartl的教程第11章):
"页面#home中的ActiveRecord :: HasManyThroughSourceAssociationNotFoundError"
"无法在模型关系中找到源关联:followed_id.尝试'has_many:follows_users,:through =>:relationships,:source =>'.它是以下之一:追随者还是:跟着?"
这真的很奇怪,因为我完全按照教程的说明进行操作.我甚至复制粘贴每个代码片段.
我的用户模型(摘录):
class User < ActiveRecord::Base
has_many :relationships, foreign_key: "follower_id", dependent: :destroy
has_many :followed_users, through: :relationships, source: "followed_id"
has_many :reverse_relationships, foreign_key: "followed_id", class_name: "Relationship", dependent: :destroy
has_many :followers, through: :reverse_relationships, source: :follower
Run Code Online (Sandbox Code Playgroud)
我的关系模型:
class Relationship < ActiveRecord::Base
attr_accessible :followed_id
belongs_to :follower, class_name: "User"
belongs_to :followed, class_name: "User"
validates :follower_id, presence: true
validates :followed_id, presence: true
end
Run Code Online (Sandbox Code Playgroud)
我的迁移文件:
class CreateRelationships < ActiveRecord::Migration
def change
create_table :relationships do |t|
t.integer :follower_id
t.integer :followed_id
t.timestamps …Run Code Online (Sandbox Code Playgroud) 在我阅读JDK的源代码之后,我发现HashMap的hash()功能看起来很有趣.它的官方代码如下:
static int hash(int h) {
// This function ensures that hashCodes that differ only by
// constant multiples at each bit position have a bounded
// number of collisions (approximately 8 at default load factor).
h ^= (h >>> 20) ^ (h >>> 12);
return h ^ (h >>> 7) ^ (h >>> 4);
}
Run Code Online (Sandbox Code Playgroud)
参数h是的hashCode从Objects它投入HashMap.这种方法如何工作?为什么?为什么这个方法可以抵御糟糕的hashCode函数?
很多时候,当我调试或重用某些代码时,文件开始获取不执行任何操作的行,尽管它们可能在某一点上做了某些事情.
像向量和填充,然后去未使用,定义但从未使用的类/结构,以及声明但从未使用过的函数.
我知道在许多情况下,其中一些不是多余的,因为它们可能从其他文件中可见,但在我的情况下,没有其他文件,只是我文件中的无关代码.
虽然我理解从技术上讲,调用会push_back做一些事情,因此矢量本身并不是未使用的,在我的情况下,它的结果是未使用的.
那么:有没有办法做到这一点,使用编译器(clang,gcc,VS等)或外部工具?
例:
#include<vector>
using namespace std;
void test() {
vector<int> a;
a.push_back(1);
}
int main() {
test();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
应该成为: int main(){return 0};
在回答了这个问题之后,我很困惑为什么这个代码中的溢出整数导致了0而不是负数.这很奇怪,为什么这么准确?为何0?
public class IntegerOverflow {
public static void main(String[] args) {
int x = 10;
int i = 0;
for (i = 0; i <= 5; i++)
{
x = x * x;
System.out.println(x);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
100
10000
100000000
1874919424
0
0
Run Code Online (Sandbox Code Playgroud) java ×3
c++ ×2
android ×1
associations ×1
c# ×1
coding-style ×1
generics ×1
git ×1
git-clone ×1
hash ×1
hashmap ×1
haskell ×1
image ×1
latex ×1
refactoring ×1
relationship ×1
repository ×1
stream ×1
types ×1
wildcard ×1
wpf ×1