473,387 Members | 1,549 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

"is" vs. "as"

Is there an advantage to either of these methods, or is it simply a matter
of style? I used to use the "as" method, but later gave it up for the "is"
method as the intent of the code seems a little clearer to me. I now have
some projects coming up where the baseTypeCollection will contain 5k to 10k
objects that will have to be searched for various sub types of which I only
expect to find ~50 to ~100 matches. Thanks!

foreach (baseType in baseTypeCollection)
{
if (baseType is desiredSubType)
{
typeFound = (desiredSubType) baseType;
//do my thing with typeFound
}
}
foreach (baseType in baseTypeCollection)
{
typeFound = baseType as desiredSubType;
if (typeFound != null)
{
//do my thing with typeFound
}
}

--
Bobby C. Jones
www.AcadX.com
Nov 15 '05 #1
15 2515
Well the first one is more natural to read.
"Bobby C. Jones" <bobbyj (at) acadx (dot) com> wrote in message
news:#g**************@TK2MSFTNGP10.phx.gbl...
Is there an advantage to either of these methods, or is it simply a matter
of style? I used to use the "as" method, but later gave it up for the "is" method as the intent of the code seems a little clearer to me. I now have
some projects coming up where the baseTypeCollection will contain 5k to 10k objects that will have to be searched for various sub types of which I only expect to find ~50 to ~100 matches. Thanks!

foreach (baseType in baseTypeCollection)
{
if (baseType is desiredSubType)
{
typeFound = (desiredSubType) baseType;
//do my thing with typeFound
}
}
foreach (baseType in baseTypeCollection)
{
typeFound = baseType as desiredSubType;
if (typeFound != null)
{
//do my thing with typeFound
}
}

--
Bobby C. Jones
www.AcadX.com

Nov 15 '05 #2
Hi Bobby,

"Bobby C. Jones" <bobbyj (at) acadx (dot) com> wrote in message
news:%2****************@TK2MSFTNGP10.phx.gbl...
Is there an advantage to either of these methods, or is it simply a matter
of style? I used to use the "as" method, but later gave it up for the "is" method as the intent of the code seems a little clearer to me. I now have
some projects coming up where the baseTypeCollection will contain 5k to 10k objects that will have to be searched for various sub types of which I only expect to find ~50 to ~100 matches. Thanks!

foreach (baseType in baseTypeCollection)
{
if (baseType is desiredSubType)
{
typeFound = (desiredSubType) baseType;
//do my thing with typeFound
}
}
foreach (baseType in baseTypeCollection)
{
typeFound = baseType as desiredSubType;
if (typeFound != null)
{
//do my thing with typeFound
}
}


Using "as" is more performat than using "is" because there is only one
cast instead of two. In most scenarios I would say the difference is
negligable, but given your scenario, you may just notice a difference.

Regards,
Dan
Nov 15 '05 #3
Bobby,

In a previous post, Greg Ewing found that when doing comparisons with
is, it is about 10X faster then checking using "as" or doing an equality
operation with GetType/typeof.

However, for what you are doing, I think that you can go one step
further. I think that what you should do is in your collection, have a
hashtable. This hashtable should be keyed on the type of the items that are
kept in the collection. The values in the hashtable are collections of the
items of that type.

So, when you add an element, you would check the type. Then look in the
hashtable against that type. Get the collection of items of that type, and
add a reference to the new value in your collection there. Also, make sure
to do the same when deleting.

Then, when you want to query for the elements that are of a particular
type, you don't have to enumerate through such a large number of items.
Granted, the insert and deletes are going to be a little slower, but
overall, if you do this kind of select often, it should increase the overall
efficiency of the class.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Bobby C. Jones" <bobbyj (at) acadx (dot) com> wrote in message
news:%2****************@TK2MSFTNGP10.phx.gbl...
Is there an advantage to either of these methods, or is it simply a matter
of style? I used to use the "as" method, but later gave it up for the "is" method as the intent of the code seems a little clearer to me. I now have
some projects coming up where the baseTypeCollection will contain 5k to 10k objects that will have to be searched for various sub types of which I only expect to find ~50 to ~100 matches. Thanks!

foreach (baseType in baseTypeCollection)
{
if (baseType is desiredSubType)
{
typeFound = (desiredSubType) baseType;
//do my thing with typeFound
}
}
foreach (baseType in baseTypeCollection)
{
typeFound = baseType as desiredSubType;
if (typeFound != null)
{
//do my thing with typeFound
}
}

--
Bobby C. Jones
www.AcadX.com

Nov 15 '05 #4
Thanks Nicholas and everyone! This is some great info to know.

The collection is actually one that I am receiving from a COM server, not
one that I'm creating myself. I had actually considered something like what
you are suggesting here Nicholas as the COM server does provide event
notification when objects are added and removed. But I wanted to wait and
see if iterating the entire collection will become a bottleneck or not
before adding the code to optimize the searches. This could be feasible and
not to damaging to my app's memory footprint because I won't need to search
for all of the subtypes, only a handful. I could just cache those types, or
even dynamically cache them as needed...Hmm...thanks for helping to get the
brain juices flowing!
--
Bobby C. Jones
www.AcadX.com
Nov 15 '05 #5
You cant have duplicates in a Hashtable so how do you propose keying on
Type? Only one type alowed at any one time?
"Bobby C. Jones" <bobbyj (at) acadx (dot) com> wrote in message
news:#A**************@TK2MSFTNGP09.phx.gbl...
Thanks Nicholas and everyone! This is some great info to know.

The collection is actually one that I am receiving from a COM server, not
one that I'm creating myself. I had actually considered something like what you are suggesting here Nicholas as the COM server does provide event
notification when objects are added and removed. But I wanted to wait and
see if iterating the entire collection will become a bottleneck or not
before adding the code to optimize the searches. This could be feasible and not to damaging to my app's memory footprint because I won't need to search for all of the subtypes, only a handful. I could just cache those types, or even dynamically cache them as needed...Hmm...thanks for helping to get the brain juices flowing!
--
Bobby C. Jones
www.AcadX.com

Nov 15 '05 #6
Nicholas Paldino [.NET/C# MVP] <mv*@spam.guard.caspershouse.com> wrote:
In a previous post, Greg Ewing found that when doing comparisons with
is, it is about 10X faster then checking using "as" or doing an equality
operation with GetType/typeof.


No - he found it was ten times faster than doing an equality check with
GetType/typeof. as/is were roughly the same speed, I believe - that
would certainly make sense, although if you then need to cast, "as"
should be faster.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 15 '05 #7
The original poster (OP) indicated that the collection was storing
references of a base type. He is searching for the derived types in the
collection. The hashtable is going to be keyed on the type of the value
that is stored in the collection (GetType returns the type of the instance,
not the type of the reference).

The hashtable would store another collection, which has the references
to the values that are in the main collection, and provides an easy way to
look them up based on the type.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"news.microsoft.com" <di********@discussion.microsoft.com> wrote in message
news:uA**************@tk2msftngp13.phx.gbl...
You cant have duplicates in a Hashtable so how do you propose keying on
Type? Only one type alowed at any one time?
"Bobby C. Jones" <bobbyj (at) acadx (dot) com> wrote in message
news:#A**************@TK2MSFTNGP09.phx.gbl...
Thanks Nicholas and everyone! This is some great info to know.

The collection is actually one that I am receiving from a COM server, not one that I'm creating myself. I had actually considered something like what
you are suggesting here Nicholas as the COM server does provide event
notification when objects are added and removed. But I wanted to wait and see if iterating the entire collection will become a bottleneck or not
before adding the code to optimize the searches. This could be feasible

and
not to damaging to my app's memory footprint because I won't need to

search
for all of the subtypes, only a handful. I could just cache those

types, or
even dynamically cache them as needed...Hmm...thanks for helping to get

the
brain juices flowing!
--
Bobby C. Jones
www.AcadX.com


Nov 15 '05 #8
Jon,

Nope, these are the numbers that he posted:

Using the is operator took 00:00:00.0000240
Using GetType() took 00:00:00.0002363
Using the as operator took 00:00:00.0002394

The as operator was the slowest of them all.

--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
news:MP************************@msnews.microsoft.c om...
Nicholas Paldino [.NET/C# MVP] <mv*@spam.guard.caspershouse.com> wrote:
In a previous post, Greg Ewing found that when doing comparisons with is, it is about 10X faster then checking using "as" or doing an equality
operation with GetType/typeof.


No - he found it was ten times faster than doing an equality check with
GetType/typeof. as/is were roughly the same speed, I believe - that
would certainly make sense, although if you then need to cast, "as"
should be faster.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too

Nov 15 '05 #9
Nicholas Paldino [.NET/C# MVP] <mv*@spam.guard.caspershouse.com> wrote:
Nope, these are the numbers that he posted:

Using the is operator took 00:00:00.0000240
Using GetType() took 00:00:00.0002363
Using the as operator took 00:00:00.0002394

The as operator was the slowest of them all.


Oops. In that case, I'm afraid I question the testing methodology *or*
Whidbey has *completely* different behaviour to v1.1, which it may do
for the beta, of course.

(Note that the code originally posted didn't even test it 1000 times,
so I'm assuming that wasn't the code that was actually run.)

Here's code that can run under .NET 1.1, and then the results:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

class Stopwatch
{
DateTime start;
DateTime stop;

internal TimeSpan Elapsed
{
get
{
return stop-start;
}
}

internal void Start()
{
start = DateTime.Now;
}

internal void Stop()
{
stop = DateTime.Now;
}
}

class Class1
{

const int Iterations = 100000000;

static void Main(string[] args)
{
Control ctl = new DropDownList();
Stopwatch sw = new Stopwatch();
int j = 0;
sw.Start();
for (int i = 0; i < Iterations; i++)
{
if (ctl is System.Web.UI.WebControls.DropDownList)
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}
sw.Stop();
Console.WriteLine("Using the is operator took " + sw.Elapsed);

sw.Start();
for (int i = 0; i < Iterations; i++)
{
if (ctl.GetType() == typeof
System.Web.UI.WebControls.DropDownList))
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}

sw.Stop();
Console.WriteLine("Using GetType() took " + sw.Elapsed);

sw.Start();
for (int i=0; i < Iterations; i++)
{
if ((ctl as System.Web.UI.WebControls.DropDownList)
!= null)
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}
sw.Stop();
Console.WriteLine("Using the as operator took " + sw.Elapsed);
Console.Read();
}
}

My results:
Using the is operator took 00:00:00.7031250
Using GetType() took 00:00:04.9531250
Using the as operator took 00:00:00.5000000

Looking at the IL for the as/is cases, they look identical to me (I
suspect the variance in time shown above is due to JITting through the
as case, but I haven't investigated further). As I understand it,

if (x is Y)

is always transformed into exactly the same code as

if ((x as Y) != null)
When you then cast, it's cheaper to just use "as" a single time, as
that only requires the check to be performed once.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 15 '05 #10
"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
Looking at the IL for the as/is cases, they look identical to me (I
suspect the variance in time shown above is due to JITting through the
as case, but I haven't investigated further). As I understand it,
I also get similar performance for 'as' and 'is' on framework 1.0.
if (x is Y)
is always transformed into exactly the same code as
if ((x as Y) != null)


On the contrary, if you look at the IL you see that 'as' is converted to an
'is'. This makes sense because 'as' cannot be used for value types, while
'is' can.

Regards,
Pieter Philippaerts
Managed SSL/TLS: http://www.mentalis.org/go.php?sl
Nov 15 '05 #11
Dont use DateTime

Wrap QueryPerformanceCounter and QueryPerformanceFrequency native API

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
news:MP************************@msnews.microsoft.c om...
Nicholas Paldino [.NET/C# MVP] <mv*@spam.guard.caspershouse.com> wrote:
Nope, these are the numbers that he posted:

Using the is operator took 00:00:00.0000240
Using GetType() took 00:00:00.0002363
Using the as operator took 00:00:00.0002394

The as operator was the slowest of them all.


Oops. In that case, I'm afraid I question the testing methodology *or*
Whidbey has *completely* different behaviour to v1.1, which it may do
for the beta, of course.

(Note that the code originally posted didn't even test it 1000 times,
so I'm assuming that wasn't the code that was actually run.)

Here's code that can run under .NET 1.1, and then the results:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

class Stopwatch
{
DateTime start;
DateTime stop;

internal TimeSpan Elapsed
{
get
{
return stop-start;
}
}

internal void Start()
{
start = DateTime.Now;
}

internal void Stop()
{
stop = DateTime.Now;
}
}

class Class1
{

const int Iterations = 100000000;

static void Main(string[] args)
{
Control ctl = new DropDownList();
Stopwatch sw = new Stopwatch();
int j = 0;
sw.Start();
for (int i = 0; i < Iterations; i++)
{
if (ctl is System.Web.UI.WebControls.DropDownList)
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}
sw.Stop();
Console.WriteLine("Using the is operator took " + sw.Elapsed);

sw.Start();
for (int i = 0; i < Iterations; i++)
{
if (ctl.GetType() == typeof
System.Web.UI.WebControls.DropDownList))
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}

sw.Stop();
Console.WriteLine("Using GetType() took " + sw.Elapsed);

sw.Start();
for (int i=0; i < Iterations; i++)
{
if ((ctl as System.Web.UI.WebControls.DropDownList)
!= null)
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}
sw.Stop();
Console.WriteLine("Using the as operator took " + sw.Elapsed);
Console.Read();
}
}

My results:
Using the is operator took 00:00:00.7031250
Using GetType() took 00:00:04.9531250
Using the as operator took 00:00:00.5000000

Looking at the IL for the as/is cases, they look identical to me (I
suspect the variance in time shown above is due to JITting through the
as case, but I haven't investigated further). As I understand it,

if (x is Y)

is always transformed into exactly the same code as

if ((x as Y) != null)
When you then cast, it's cheaper to just use "as" a single time, as
that only requires the check to be performed once.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too

Nov 15 '05 #12
"news.microsoft.com" <di********@discussion.microsoft.com> wrote
Dont use DateTime


If you're using enough iterations, DateTime is fine. On my computer the
different loops take between 1.3s and 11s. If you know that DateTime has a
resolution of around 10ms, I'm sure that you'll agree it's good enough.

Regards,
Pieter Philippaerts
Managed SSL/TLS: http://www.mentalis.org/go.php?sl
Nov 15 '05 #13
Jon,

FYI these are the whidbey results on a 1Ghz PIII

Using the is operator took 00:00:01.1315933
Using GetType() took 00:00:02.6637506
Using the as operator took 00:00:01.0214382

Good to see GetType got a los faster (as a lot of others :-))
Willy.

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message news:MP************************@msnews.microsoft.c om...
Nicholas Paldino [.NET/C# MVP] <mv*@spam.guard.caspershouse.com> wrote:
Nope, these are the numbers that he posted:

Using the is operator took 00:00:00.0000240
Using GetType() took 00:00:00.0002363
Using the as operator took 00:00:00.0002394

The as operator was the slowest of them all.


Oops. In that case, I'm afraid I question the testing methodology *or*
Whidbey has *completely* different behaviour to v1.1, which it may do
for the beta, of course.

(Note that the code originally posted didn't even test it 1000 times,
so I'm assuming that wasn't the code that was actually run.)

Here's code that can run under .NET 1.1, and then the results:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

class Stopwatch
{
DateTime start;
DateTime stop;

internal TimeSpan Elapsed
{
get
{
return stop-start;
}
}

internal void Start()
{
start = DateTime.Now;
}

internal void Stop()
{
stop = DateTime.Now;
}
}

class Class1
{

const int Iterations = 100000000;

static void Main(string[] args)
{
Control ctl = new DropDownList();
Stopwatch sw = new Stopwatch();
int j = 0;
sw.Start();
for (int i = 0; i < Iterations; i++)
{
if (ctl is System.Web.UI.WebControls.DropDownList)
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}
sw.Stop();
Console.WriteLine("Using the is operator took " + sw.Elapsed);

sw.Start();
for (int i = 0; i < Iterations; i++)
{
if (ctl.GetType() == typeof
System.Web.UI.WebControls.DropDownList))
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}

sw.Stop();
Console.WriteLine("Using GetType() took " + sw.Elapsed);

sw.Start();
for (int i=0; i < Iterations; i++)
{
if ((ctl as System.Web.UI.WebControls.DropDownList)
!= null)
{
j++;
//Console.WriteLine("ctl is a DropDownList");
}
else
{
j++;
//Console.WriteLine("ctl is NOT a DropDownList");
}
}
sw.Stop();
Console.WriteLine("Using the as operator took " + sw.Elapsed);
Console.Read();
}
}

My results:
Using the is operator took 00:00:00.7031250
Using GetType() took 00:00:04.9531250
Using the as operator took 00:00:00.5000000

Looking at the IL for the as/is cases, they look identical to me (I
suspect the variance in time shown above is due to JITting through the
as case, but I haven't investigated further). As I understand it,

if (x is Y)

is always transformed into exactly the same code as

if ((x as Y) != null)
When you then cast, it's cheaper to just use "as" a single time, as
that only requires the check to be performed once.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too

Nov 15 '05 #14
> In a previous post, Greg Ewing found that when doing comparisons with
is, it is about 10X faster then checking using "as" or doing an equality
operation with GetType/typeof.
That doesn't seem to be correct???

--
-----------
Got TidBits?
Get it here: www.networkip.net/tidbits
"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.com> wrote in
message news:e#**************@TK2MSFTNGP12.phx.gbl... Bobby,

In a previous post, Greg Ewing found that when doing comparisons with
is, it is about 10X faster then checking using "as" or doing an equality
operation with GetType/typeof.

However, for what you are doing, I think that you can go one step
further. I think that what you should do is in your collection, have a
hashtable. This hashtable should be keyed on the type of the items that are kept in the collection. The values in the hashtable are collections of the items of that type.

So, when you add an element, you would check the type. Then look in the hashtable against that type. Get the collection of items of that type, and add a reference to the new value in your collection there. Also, make sure to do the same when deleting.

Then, when you want to query for the elements that are of a particular
type, you don't have to enumerate through such a large number of items.
Granted, the insert and deletes are going to be a little slower, but
overall, if you do this kind of select often, it should increase the overall efficiency of the class.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Bobby C. Jones" <bobbyj (at) acadx (dot) com> wrote in message
news:%2****************@TK2MSFTNGP10.phx.gbl...
Is there an advantage to either of these methods, or is it simply a matter of style? I used to use the "as" method, but later gave it up for the

"is"
method as the intent of the code seems a little clearer to me. I now have some projects coming up where the baseTypeCollection will contain 5k to

10k
objects that will have to be searched for various sub types of which I

only
expect to find ~50 to ~100 matches. Thanks!

foreach (baseType in baseTypeCollection)
{
if (baseType is desiredSubType)
{
typeFound = (desiredSubType) baseType;
//do my thing with typeFound
}
}
foreach (baseType in baseTypeCollection)
{
typeFound = baseType as desiredSubType;
if (typeFound != null)
{
//do my thing with typeFound
}
}

--
Bobby C. Jones
www.AcadX.com


Nov 15 '05 #15
Alvin Bruney <vapordan_spam_me_not@hotmail_no_spamhotmail.com > wrote:
In a previous post, Greg Ewing found that when doing comparisons with
is, it is about 10X faster then checking using "as" or doing an equality
operation with GetType/typeof.


That doesn't seem to be correct???


It's correct that Greg posted it (I blundered there) - but the results
aren't consistent with behaviour on the shipping framework, at least,
or Willy's installation of Whidbey.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 15 '05 #16

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Karuna | last post by:
Hi Am newbie to VB script. Am struck with a problem. I am trying to use an array of pages ( many pages added in "multipage" control). And am using a for loop sending each page item to a...
27
by: Curious Angel | last post by:
I have a resume in PDF format and I want anyone who LEFT-OR-RIGHT clicks the link to force the file to be saved, and in any event _not_ opened. Since the PDF will be in his cache in any event, I...
40
by: Steve Juranich | last post by:
I know that this topic has the potential for blowing up in my face, but I can't help asking. I've been using Python since 1.5.1, so I'm not what you'd call a "n00b". I dutifully evangelize on the...
9
by: Fresh Air Rider | last post by:
Hi Everyone Thanks for your replies and thanks to everyone for making such an interesting discussion. After working very hard to get my Computer Science degree and investing my own hard earnt...
28
by: Act | last post by:
Why is it suggested to not define data members as "protected"? Thanks for help!
13
by: Hans | last post by:
Hello, Thanks for all your response on my question about signed/unsigned chars. The problem is this: I want to use the char array for a ArrayLookup, so I need to convert char to unsigned int....
24
by: hjbortol | last post by:
Hi! Is the expression "a >= b" equivalent to "a - b >= 0" in C/C++? Is this equivalence an IEEE/ANSI rule? Or is this machine/compiler dependent? Any references are welcome! Thanks in...
10
by: Christian Staudenmayer | last post by:
Hi, is there any revision of the C standard that allows the "inline" keyword (or a similar feature)? I know it is possible in gcc, but then it might be a gcc feature only. Greetings, Chris ...
72
by: Paminu | last post by:
In math this expression: (a < b) && (b < c) would be described as: a < b < c But why is it that in C these two expressions evaluate to something different for the same values of a, b and...
37
by: jht5945 | last post by:
For example I wrote a function: function Func() { // do something } we can call it like: var obj = new Func(); // call it as a constructor or var result = Func(); // call it as...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.