|
John Simmons / outlaw programmer wrote: who CAN we laugh at
Everyone else who are not us of course.
No comment
|
|
|
|
|
|
There is an article here on CP which suggests some possible uses:
C# 4 - Tuples[^]
|
|
|
|
|
+5 Thanks for this link ! I am continually urging QA questioners to search CP, so this does remind me I should "practice what I preach."
It would interest me to know the .NET performance aspects of Tuples compared to a solution in which structs were used as the basis for a collection that was sortable, comparable, etc. Anonymous types are another possible answer, but you can't "export" them, so for me they don't belong in this hypothetical comparison.
thanks, Bill
"Anyone who shows me my 'blind spots' gives me the gift of sight." ... a thought from the shallows of the deeply shallow mind of ... Bill
|
|
|
|
|
One occasion when rapidly developing an application I will use it as a return type when I need to return more than one variable. However, I usually end up refactoring it to be a real object.
|
|
|
|
|
I would never use one in production code. They might be useful for a quick hack to produce a technical prototype, but they seem like a step backward to me, in that you lose all semantic meaning of the type declaration. (You don't return ArrayList from methods, do you? Think about why not, and how much of that also applies to a typed tuple.)
It's trivial to create a custom data storage class to hold a multi-part return and you can give that a meaningful name, provide helpful reading or manipulation methods and so on which relate directly to the particular use you want to put the class to.
I use tuples in prototyping or dynamic languages where they are syntactically convenient and the expectations of meaning and type safety are relaxed (e.g. APL) – but even there, most of those languages now support the dynamic creation of objects which you can use to provide meaningful names for elements of the data. E.g. JavaScript:
function x(args){
return { thing: 'result'; type: 'awesome'; answer: 42 };
}
That seems much clearer to me than
return ['result', 'awesome', 42];
... and the same applies in C#. Add onto that the clumsy looking declaration for a tuple (Tuple<string, string, int> is as long as CleverMethodResult ) and I see no reason to use them.
|
|
|
|
|
Thanks Bob, for your thorough reply. Your wider perspective on the use of Tuples outside .NET is very valuable.
Right now the only advantage I can see in using them in C# .NET is that you can have Tuples with the same internal values for each Item be keys in a Dictionary, but that's a rather rare/strange usage.
It was fun, plumbing the depths of Tuples
Too bad there isn't a Form of Tuple that lets you establish "meaningful aliases" to use instead of Item1.Item2 ...
best, Bill
"Anyone who shows me my 'blind spots' gives me the gift of sight." ... a thought from the shallows of the deeply shallow mind of ... Bill
modified 6-Dec-11 22:24pm.
|
|
|
|
|
Hai, friends
Iam new to develop a application with multiple language in c#. i writed program for getting translated texts from database. and i put it in the form1's code event but it work only for the form1 i would like to get my translation to all my form my application have and each and every message showing in message box. so where should i put this translation code? in the program.cs page?
can anyone Help me by a small exmple?
Please Help me
Arunkumar.T
|
|
|
|
|
You need to read up on something called Separation of Concerns. There are plenty of C# examples that you should be able to get an understanding of. You should separate the translation code out into a separate cless. Good luck.
|
|
|
|
|
Which UI-framework are you targetting? WPF[^] or WinForms[^]?
Bastard Programmer from Hell
|
|
|
|
|
Trying to talk him in to taking a look at MVVM?
Cheers (and regards from Sinterklaas ) AT
Cogito ergo sum
|
|
|
|
|
Addy Tas wrote: Trying to talk him in to taking a look at MVVM?
Wouldn't hurt, but I was trying to talk him into taking a look at MSDN
Addy Tas wrote: Cheers (and regards from Sinterklaas ) AT
He'll have another chance at abducting me to Spain next year
Bastard Programmer from Hell
|
|
|
|
|
Please clarify: is this WinForms, or Web based, or ... ?
Also, exactly what do you mean by "translate" here: what exactly is the "translation code" ?
1. you could be saying you are pulling data from a database in one language, and then translating it yourself in your own code (or via some Web service, or by interacting with other software components) into other (multiple ?) languages, so different languages might be displayed in different Forms.
2. you could be referring to the issue of localization here, but I seriously doubt that.
3. or, are you saying you want to take this "translated text" you retrieved from the DataBase, which is already translated into one-and-only-one language, and display it in more than one Form: so the same content, in the same language is shown in every Form ?
And, where do MessageBoxes come into the action here: where does the content of the MessageBoxes come from ?
My guess is that you mean #1, but it would be good to know that for sure.
"Anyone who shows me my 'blind spots' gives me the gift of sight." ... a thought from the shallows of the deeply shallow mind of ... Bill
modified 4-Dec-11 21:10pm.
|
|
|
|
|
I'm guessing here, but the OP's question smells to me like localisation.
Cheers,
Peter
Software rusts. Simon Stephenson, ca 1994.
|
|
|
|
|
Hai thank you for your answers guys
i am trying to make a windows application in c#.
this is my database table structure
f_textinenglish,f_language_code,f_texttranslated<br />
<br />
welcome 101 welcome<br />
welcome 102 bienvenida<br />
welcome 103 welkom
i have a combo box in first form when a user change language there all all labels and all forms change to the selected language.
i writed program for getting translated text for each control in the form1.
my question is where should i put this code for getting tranlation globally(means all form and all controls)?
i thing you understand what is my problem . Please Help Me.
Thank you
Arunkumar.T
|
|
|
|
|
Arunkumar.Koloth wrote: Hai thank you for your answers guys Sri Arunkamar, you are indeed dealing with a problem of system language localisation, and there are powerful solutions within .NET for support of multiple languages, that use the internal facilities of the OS.
Specifically you want to be using resource files here. There are lots of articles on CP about localisation, just search. Here's one that's still getting current positive votes now, even though its eight years old[^].
So why are you writing your own replacement, when built-in multi-language support is a given ?
"Jangal mein hain bole koyal ku, ku, kuu!" ... "In the jungle the cuckoos are crying ku ku kuu!" ... from the song "Kahin Ag Lage" in the movie, "Taal.[^]
"Anyone who shows me my 'blind spots' gives me the gift of sight." ... a thought from the shallows of the deeply shallow mind of ... Bill
modified 4-Dec-11 22:13pm.
|
|
|
|
|
Arunkumar.Koloth wrote: can anyone Help me by a small exmple?
I recommend picking up a good book and reading some chapters on ADO.Net.
This should give you a fair idea plus a lot of sample code as well.
Too much of heaven can bring you underground
Heaven can always turn around
Too much of heaven, our life is all hell bound
Heaven, the kill that makes no sound
|
|
|
|
|
Hai again this is my class code
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SQLite;
namespace sample
{
class translation
{
private SQLiteConnection sql_con;
private SQLiteCommand sql_cmd;
private SQLiteDataAdapter DB;
private SQLiteDataReader dr;
public void LoadTranslations(int languagecode)
{
string[] TextinTranslatedArray = new string[200];
string[] TextinEnglishArray = new string[] { "Admin","User","ZHome","UserName"};
for (int i = 0; i < TextinEnglishArray.Length; i++)
{
string sql;
sql = "SELECT f_text_translated FROM t01_text_translation WHERE f_text_english='" + TextinEnglishArray[i] + "'AND f_language_code='" + languagecode + "'";
sql_cmd = sql_con.CreateCommand();
sql_cmd.CommandText = sql;
dr=sql_cmd.ExecuteReader();
TextinTranslatedArray[i] = dr.GetValue(0).ToString();
}
sql_con.Close();
}
private void SetConnection()
{
sql_con = new SQLiteConnection("Data Source=DATA.sl3;Version=3;New=False;Compress=True;");
}
}
}
AND WHEN I CREATE A OBJECT FOR THIS CLASS IN MY FORM I GOT SOME ERROR
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace sample
{
class tr=new translation();
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Error is :-
Error 3 { expected C:\Users\arun\Documents\Visual Studio 2005\Projects\sample\sample\Form1.cs 11 13 sample<br />
Error 4 Invalid token '=' in class, struct, or interface member declaration C:\Users\arun\Documents\Visual Studio 2005\Projects\sample\sample\Form1.cs 11 13 sample<br />
Error 5 Class, struct, or interface method must have a return type C:\Users\arun\Documents\Visual Studio 2005\Projects\sample\sample\Form1.cs 11 18 sample<br />
Error 6 } expected C:\Users\arun\Documents\Visual Studio 2005\Projects\sample\sample\Form1.cs 24 2 sample
What is this error?
Please Help me
Arunkumar.T
|
|
|
|
|
Look for the line that has class = in it. There are two things wrong with it.
First, you don't declare variables outside a class. This should be inside the class declaration.
Second, you don't declare variables using class, you need to use the class name to declare the member here.
|
|
|
|
|
Arunkumar.Koloth wrote: class tr=new translation();
I don't know what you meant to do with this line, but A. If you want to declare another class in the same file as a file with a Partial class declaration, it has to be after the Partial class declaration. B. If you wanted to declare an instance of the translation class for use in your form class, it has to be declared inside the form class and cannot be declared as a class. It should be someting like this:-
public partial class Form1 : Form
{
translation tr = new translation();
public Form1()
{
}
}
When I was a coder, we worked on algorithms. Today, we memorize APIs for countless libraries — those libraries have the algorithms - Eric Allman
|
|
|
|
|
|
Glad to help
When I was a coder, we worked on algorithms. Today, we memorize APIs for countless libraries — those libraries have the algorithms - Eric Allman
|
|
|
|
|
hello guys..I am using stored procedures to get the data be shown in the gridview. Here is how I created SP in sql server.
CREATE PROCEDURE [dbo].[ShowStudent] AS
SELECT * FROM StudentInfo
And here is how I am incorporating this SP in C# sample.
private void Form1_Load(object sender, EventArgs v)
{
SqlConnection connection = new SqlConnection("Data Source=MUZE-LAPTOP\\SQLEXPRESS; Initial Catalog=StudentInfo;Integrated Security=SSPI;");
SqlCommand command;
DataTable dt = new DataTable();
SqlDataAdapter adapter;
try
{
connection.Open();
command = new SqlCommand("ShowStudent", connection);
adapter = new SqlDataAdapter(command);
adapter.Fill(dt);
connection.Close();
dgStudents.DataSource = dt;
}
catch (Exception ex)
{ connection.Close(); MessageBox.Show(ex.Message); }
}
But it shows me the error
Cannot Open Database 'Students' requested by the login. Login Failed. Login Failed for user 'Muze-Laptop\muze'
What can be the reason? thnx
|
|
|
|
|
A permission/rights problem. Fire up SQLManagement and look under security to see if the user under wich
you ran the app has the necessary privileges.
All the best,
Dan
modified 4-Dec-11 9:40am.
|
|
|
|
|
overloaded Name wrote
CREATE PROCEDURE [dbo].[ShowStudent] AS
SELECT * FROM StudentInfo
...
SqlConnection connection = new SqlConnection("Data Source=MUZE-LAPTOP\\SQLEXPRESS; Initial Catalog=StudentInfo;Integrated Security=SSPI;");
Which one is the database name ShowStudent or StudentInfo ?
Wonde Tadesse
MCTS
|
|
|
|