Benutze doch Defaultwerte in den parametern
// Class.cs
public class Class
{
public int Property1{ get; set; }
public string Property2{ get; set; }
// [...]
public string PropertyN{ get; set; }
public Class(int property1 = 12, string property2 = "", ..., string propertyN = "")
{
Property1 = property1 ;
// [...]
}
public class Program
{
private static void Main()
{
Class c = new Class(property1:5, propertyN:"Hallo");
}
}
Steht doch alles in der MSDN....
Lass den FileStream nach dem laden doch offen. Dann ist sie gesperrt
Ich wüde die variante wie du die version überprüfst ändern. So würde das nicht unter Windows 8 funktionieren. (Auf Grund solcher Fehlerhaften OS Abfragen wurde Wndows 7 übrigens auch Version 6.1 und nicht 7.0
public static bool IsWin7OrHigher
{
get
{
return Environment.OSVersion.Version >= new Version(6, 1, 7100);
}
}
... ist ein DELETE & INSERT schneller als ein UPDATE ?
Dann wäre doch sicherlich der Updatebefehl so implementiert, oder sehe ich das falsch? 🤔
Zahlen richtig als Zeichenkette auszugeben ist wahrscheinlich nicht ganz so banal wie es sich anhört. Ich habe einmal kurz gegoogelt und einen Artikel dazu gefunden. Er ist zwar für die Englische ausgabe, aber du kannst es dir ja mal durchgucken und versuchen es entsprechend für Deutsch zu ändern.
Guck dir mal das an:
Activator.CreateInstance zusammen mit Type.GetType
Der StreamReader nutzt intern einen Buffer und ließt Blöcke aus. Die buffergröße lässt sich einstellen und beträgt standardmäßig 1024 Bytes
Man kann ja auch mit mehreren tabs auf der selben Seite unterwegs sein, und so würde es dabei zu Problemen kommen
Meine Lösung:
public static string Pattern2
{
get
{
// TODO: Pattern fluent deklarieren
return Pattern.With.Literal("<").WhiteSpace.Repeat.ZeroOrMore.NamedGroup("tag", Pattern.With.Literal("beispiel"))
.Group(
Pattern.With.WhiteSpace.Repeat.OneOrMore.NamedGroup("key", Pattern.With.Set(Pattern.With.Word).Repeat.OneOrMore)
.WhiteSpace.Repeat.ZeroOrMore.Literal("=").WhiteSpace.Repeat.ZeroOrMore
.Group(Pattern.With.Choice.Either(
Pattern.With.Literal("'").NamedGroup("value", Pattern.With.NegatedSet(Pattern.With.Literal("'>")).Repeat.ZeroOrMore).Literal("'")
,
Pattern.With.NamedGroup("value", Pattern.With.NegatedSet(Pattern.With.Literal("'>").WhiteSpace).Repeat.OneOrMore)
)
).Repeat.Optional).Repeat.Optional.WhiteSpace.Repeat.ZeroOrMore.Literal(">");
}
}
Die tests laufen alle durch, allerdings finde ich da den ganz normalen regulären ausdruck einfacher zu lesen
Meinst du vielleicht einen Ringbuffer, bzw eine Queue?
Wo ist denn da ne große Datenmenge? 64mb pro Minute sind doch nicht viel.. (Ich komme beim nachrechnen auch nur auf 7mb/Minute 32(Kanäle) * 1000(Werte) * 4(Bytes bei einem float) * 60(Sekunden in einer Minute) = 7680000 b = 7500 kb = 7,3mb)
Ich verstehe das problem gerade nicht so ganz
Die lassen sich aber auch mit Developer Unlock nicht nutzen. Dazu brauchst du schon einen Interop Unlock. Zu sagen ist noch, dass du einen Developerunlock als Schüler und Student kostenlos bekommst über Dreamspark
Jetzt aber:
static double Area(double x1, double y1, double x2, double y2, double x3, double y3)
{
return 0.5 * ((y3 + y1) * (x3 - x1) + (y2 + y3) * (x2 - x3) - (y2 + y1) * (x2 - x1));
}
Hab es jetzt wie in der FAQ gelöst, auch wenn mir das ändern der AssemblyInfo Datei nicht gefällt, da die dann immer als Update auf dem Server landet 😕
vertausche mal das allow und das deny. ich könnte mir vorstellen, dass die Liste von oben nach unten abgearbeitet wird, und der erste Punkt der auf den Nutzer passt ist im zweiten Fall das deny, das ja für alle gilt.
Ich hab mir gerade was gebastelt, eher quick & dirty, aber es funktioniert und reicht für mich erst mal. Das ganze aktualisiert jeweils nur die Assembly Version. Ich habe es nicht hinbekommen, die Dateiversion auch zu aktualisieren. Gebraucht wird das ILMerge Tool, sowie die SharpSVN Bibliothek.
class Program
{
static void Main(string[] args)
{
string assembly = args[0];
string repoPath = args[1];
string ilmerge = @"%PROGRAMFILES(X86)%\Microsoft\ILMerge\ILMerge.exe";
ilmerge = Environment.ExpandEnvironmentVariables(ilmerge);
Version version = GetAssemblyVersion(assembly);
using (SvnClient client = new SvnClient())
{
SvnInfoEventArgs info;
Uri repos = new Uri(repoPath);
client.GetInfo(repos, out info);
version = new Version(version.Major, version.Minor, version.Build, (int)info.Revision);
}
string param = "";
if (File.Exists(assembly + "_old.exe"))
File.Delete(assembly + "_old.exe");
File.Move(assembly, assembly + "_old.exe");
Process p = Process.Start(ilmerge, param = string.Format("/ver:{0} /out:{1} {2}", version, assembly, assembly + "_old.exe"));
p.WaitForExit();
File.Delete(assembly + "_old.exe");
}
private static Version GetAssemblyVersion(string assembly)
{
Assembly asm = Assembly.Load(File.ReadAllBytes(assembly));
return asm.GetName().Version;
}
}
Dann als Postbuildereignis
"H:\Pfad\zum\Tool.exe" $(TargetPath) "https://schlag-mich-tod/svn/wasweissich/"
Wie gesagt eine Fehlerbehandlung fehlt, aber da hab ich aktuell keine Lust zu. Wer es benutzen will kann das ja noch einbauen. Wenn trotzdem jemand etwas eleganteres kennt, würde ich mich über weitere Antworten freuen! 😃
Hallo!
Ich benutze aktuell AnkhSVN, um einen SVN Support für mein Visual Studio 2010 Professional zu bekommen. Nun brauche ich das aktuell für eine Software, von der ich regelmäßig einen Build auf den Server ziehe, wo das programm dann drauf läuft. Nun möchte ich wissen, zu welcher Revision die Version gehört, also die aktuelle Revision Nummer in die Datei & Assembly Version mit einbeziehen. Ich habe da schon etwas länger gesucht, aber noch nichts gefunden. Es geht mir hierbei um die SVN Revision Nummer, also einfach einen * benutzen funktioniert nicht.
Lieben Gruß
pdelvo
Der reguläre Ausdruck passt da nicht. Versuch mal, ob das einen Match liefert:
href="http://www.mycsharp.de/wbb2/newthread.php"
Vielleicht liegt es an der falschen Adresse, wenn du IPV6 verwendest
net.tcp://[ipv6-adresse]:port/ClientService.
Die IP muss in eckige Klammern, damit eindeutig ist, welche teile zur IP, und welche zum Port gehören
Oder füg es zur Form hinzu, öffne die Form.Designer.cs Datei und guck was die anders macht als du
Habe es mir eben schon angesehen. Die Texte zu den Achievments sind echt lustig. 😁
Interrupting Cow
Have 10 breakpoints in a file. Where's that bug? Could here, could be there, could be anywhere!
👍
Wenn ich das Ausrechne komme ich auf eine zahl mit 13743895347 Stellen bei einem Verbrauch von 4 GB. Die größte Darstellbare Zahl ist dabei (wenn man vom Speicherplatz für Verwaltung absieht:
Bytes pro GB = 230 = 1073741824
Bytes für 4GB = 4 * 230 = 232 = 4294967296
In Bits = 8 * 232 = 2^35 = 34359738368
Also ist die Größte darstellbare Zahl = 2^34359738368 - 1
Ich hoffe ich habe mich nirgendwo verrechnet. Was noch sein kann ist, dass die Ansteuerung der Bytes durch einen integer passiert, dass würde die Größe des Speichers auf 4GB begrenzen.
Ob das funktioniert hängt von der NAT Einstellung des Routers ab. Aber wenn das Hole Punching an sich funktioniert sollte das dann auch für einen anderen Client funktionieren.
Du kannst doch den scale Parameter benutzen um den Text zu skalieren
Überlege dir wie viel Platz pro Eintag gebraucht wird. Wenn man von grob 1kb/pro Objekt ausgeht, was vermutlich vollkommen übertrieben ist landest du bei schlappen 24mb. also noch lange nicht besorgniserregend
0xafffffff ist definiert, und zwar als -1342177281. Und schneller bekommt man mMn aus einem Byte Array kein Integer Array. Mein Code hat den Vorteil, das nichts kopiert wird, und das das Zurückkonvertieren, wie das hinkonverteren keine Resourcen kostet. Um Audio Daten zu bearbeiten hat es sich bei mir als Vorteilhaft gezeigt. Ich konnte in meinem Fall mit den Shorts schnell arbeiten und hatte die Daten sofort wieder als byte Array zum weiterschicken
Ich habe mir für sowas nen kleinen Hack gebaut. Ob es das performanteste oder beste ist um sowas zu machen weis ich nicht. PCM Daten sollten doch aber shorts sein(?) Genau für sowas hab ich das nämlich gebaut. Für integers kannst du das aber genau so umbauen
/// <summary>
/// You must not use Array.Length! Use AudioBuffer.GetLength instead.
/// </summary>
[StructLayout(LayoutKind.Explicit, Pack=2)]
public class AudioBuffer
{
[FieldOffset(0)]
int _length;
[FieldOffset(8)]
byte[] _byteBuffer;
[FieldOffset(8)]
short[] _shortBuffer;
public AudioBuffer(byte[] allocate)
{
if (allocate == null)
throw new ArgumentNullException("allocate");
if (allocate.Length % sizeof(short) != 0)
throw new ArgumentOutOfRangeException("allocate");
_byteBuffer = allocate;
}
public byte[] ByteBuffer { get { return _byteBuffer; } }
public short[] ShortBuffer { get { return _shortBuffer; } }
public int GetLength()
{
return _byteBuffer.Length / sizeof(short);
}
}
Wichtig dabei ist, dass du ShortBuffer.Length nicht benutzt, sonodern Die GetLength Methode. Sonst bekommst du eine falsche Länge
//Edit Blöd wenn man beim kurzen Überarbeiten des Codes Fehler einbaut
Für Einstellungen finde ich IsolatedStorageSettings besser geeignet. Da braucht man sich nicht um das Serialisieren zu kümmern
public class ClassA
{
public ClassB OtherClass{ get; set; }
}
public class ClassB
{
public ClassA OtherClass{ get; set; }
}
Wo ist das Problem?
Wenn es um Debugdaten geht benutze ich immer Debug.WriteLine(...). Dann bekommt man die infos schön in der Ausgabe im VS angezeigt. Dazu muss die Anwendung aber mit angeschaltetem Debugger laufen. Sonst halt wenn es um kleine Dinge geht kurz ne MessageBox anzeigen, oder Breakpoints setzen. Mir kommt gerade aber die dee, ob man sowas nicht übers Netzwerk machen kann. Müsstest du dich halt kurz ransetzen und einen Client + Serverbibliothek schreiben und darüber in eine Datei schreiben. Das kann man ja dann später wiederverwenden
AppDomainSetup.ShadowCopyFiles
Typ: System.String
Der Zeichenfolgenwert "true" für aktiviertes Erstellen von Schattenkopien oder "false" für deaktiviertes Erstellen von Schattenkopien.
Also ich bin da ganz der selben Meinung. Immer dieser neumodische Kram. Wer braucht schon 'Booleans'.
chars sind auch Zahlen. und klar kommt wenn du sie addierst wieder eine zahl raus.
Single = float. float ist das Schlüsselwort. Der passene Typ ist System.Single 😉
Das Argumen, dass 2 bytes addiert schnell was größeres gibt halte ich für nicht Aussagekräftig. Das selbe Spiel kann man mit nem int auch machen. Das ergibt auch schnell ne größere Zahl. Der Grund ist, mMn, dass CPUs nicht mit bytes rechnen können. Sie rechnen mit Integers (32bit) oder Longs(64bit). Aber auch unter 64bit macht .net ein integer draus.
Nachtrag: na toll. gfoidl war schneller^^
Warum nicht so?
//min ist inklusiv, max ist exklusiv
public static int GetRandomNumber(byte min, byte max)
{
if(min >=max) throw new ArgumentOutOfRangeException("'min' must be smaler then 'max'");
RNGCryptoServiceProvider csp = new RNGCryptoServiceProvider();
byte[] numbers = new byte[1];
csp.GetBytes(numbers);
return min + (numbers[0] % (max- min));
}
Warum machst du dort überhaupt eine Unterscheidung?
Das stimmt allerdings nicht. Man kann sich eine lokale Datenbank im Issolated Storage erstellen und dort drauf zugreifen. Ein Beispiel ist im Mango Trainings Course. In den Offlinedaten ist ein entsprechendes Beispiel mit einer ToDo-Liste
Nein. Es funktioniert nicht, wenn der NAT Typ des Routers Strict ist. Dann nimmt er keine Udp Packete einer anderen IP, und einem anderem Port an, als die, zu denen er sie gesendet hat. Dann kannst du von dem anderen Rechner so viele Packete schicken wie du willst. Der Router blockiert sie. Teamviewer, Skype und co. leiten den Traffic dann über einen Server. Das ist dann entsprechend langsam. In Skype erscheint dann zB bei einem Filetransver dieses Schnecken-Symbol und es gibt im Tooltip den Hinweis darauf.
Was spricht gegen Any CPU?
Die serielle Schnittstelle anzusteuern ist kein problem. Gibt es denn eine Dokumentation für das gerät, wo beschrieben wird, wie es über die serielle Schnittstelle kommuniziert?
lg pdelvo
Ich bekomme beim starten eine OverflowException
Fehlermeldung:
System.OverflowException: Der Wert für einen Int32 war zu groß oder zu klein.
bei System.Convert.ToInt32(UInt64 value)
bei System.UInt64.System.IConvertible.ToInt32(IFormatProvider provider)
bei System.Convert.ToInt32(Object value)
bei EnergySettings.Computer.AddElement(String library, String keyword, Boolean ram) in C:\Users\blr.TGW\documents\visual studio 2010\Projects\EnergySettings\EnergySettings\Computer.cs:Zeile 45.
bei EnergySettings.Computer.GetInformations() in C:\Users\blr.TGW\documents\visual studio 2010\Projects\EnergySettings\EnergySettings\Computer.cs:Zeile 22.
bei EnergySettings.Form1.SetInformations() in C:\Users\blr.TGW\documents\visual studio 2010\Projects\EnergySettings\EnergySettings\Form1.cs:Zeile 50.
bei EnergySettings.Form1.Form1Load(Object sender, EventArgs e) in C:\Users\blr.TGW\documents\visual studio 2010\Projects\EnergySettings\EnergySettings\Form1.cs:Zeile 82.
bei System.Windows.Forms.Form.OnLoad(EventArgs e)
bei System.Windows.Forms.Form.OnCreateControl()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl()
bei System.Windows.Forms.Control.WmShowWindow(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.Form.WmShowWindow(Message& m)
bei System.Windows.Forms.Form.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
edit: windows 7 ultimate. 2 bildschirme. der primärbildschirm ist rechts(weiss nicht ob es daran liegen könnte). 8GB Ram(vllt verstuchst du den ram in einem integer zu speichern(?)
vorallem braucht man kein hole punch wenn man den port mit upnp aufbekommt. wenn das nicht geht und man holepunch versucht funktioniert das aber auch nicht mit jedem router. ich zB habe einen, der auf strict eingestellt ist. der lässt nichts durch was nicht von da kommt wo er es erwartet
Dazu kommt ja noch, dass ein Rechner auch mehrere IPs haben kann. Über mehrere Adapter. Welche willst du genau wissen?
Wenn dir das zu ungenau ist, kannst du auch eine eigene Lösung benutzen. Habe mal kurz Google angeworfen und das hier gefunden. Die Zeiten, die der Author angibt sehen jedenfalls vielversprechend aus.
Sieht echt schick aus. Wenn du einstellen lässt, diedie Logfiles geparsed werden, werde ich es benutzen 😃 Sollte doch relativ einfach sein, so das ich einen regulären Ausdruck angeben kann. Das wäre das beste 😃
Stimmt. Dann fang ich mal an 😛
Solche Systeme muss man ja dann auch vor etwaigen Hackern schützen. Was ist, wenn eine terrorgruppe das System anzapft und alle Fahrzeuge plötzlich vollgas auf die nächste Wand nehmen?
Ich vertraue einem menschlichen Fahrer mehr als einem anderen System. Es braucht nur mal irgendwo ein Bug drinnen sein und so ein Auto macht Dinge, die ein Mensch niemals tun würde, egal wie fahrtauglich er ist. Einen Rechner interessiert das wenig
Ink in WPF -- Using TextInputPanel for Text Input
Ist das das, was du suchst?
Sei doch nicht so bescheiden. Was du hier auf die Beine gestellt hast ist echt unglaublich. Niemand sonst verfasst hier so wertvolle Beiträge wie du. Mein Respekt!